メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

署名付き URL を使用したオブジェクトのアップロード(AWS SDK for Ruby)

以下のタスクは、Ruby スクリプトで Ruby の SDK バージョン 3 の署名付き URL を使用してオブジェクトをアップロードする手順を示しています。

オブジェクト Ruby の SDK バージョン 3 のアップロード

1

Aws::S3::Resource クラスのインスタンスを作成します。

2

Aws::S3::Resource クラスインスタンスの #bucket[] および #object[] メソッドを呼び出して、バケット名とオブジェクトキーを指定します。

URI クラスのインスタンスを作成し、これを使用して Aws::S3::Resource クラスインスタンスの .presigned_url メソッドを解析することにより、署名付き URL を生成します。オブジェクトをアップロードする場合、.presigned_url の引数として :put を指定し、Net::HTTP::Session#send_requestPUT を指定する必要があります。

3

署名付き URL を利用できるすべてのユーザーが、オブジェクトをアップロードすることができます。

アップロードにより、オブジェクトが作成されるか、または署名付き URL で指定されたものと同じキーを持つ既存のオブジェクトが置き換えられます。

以下の Ruby コード例は、Ruby の SDK バージョン 3 用の前述のタスクを実装したものです。

Copy
#Uploading an object using a pre-signed URL for Ruby の SDK - Version 3. require 'aws-sdk-s3' require 'net/http' s3 = Aws::S3::Resource.new(region:'us-west-2') obj = s3.bucket('BucketName').object('KeyName') # Replace BucketName with the name of your bucket. # Replace KeyName with the name of the object you are creating or replacing. url = URI.parse(obj.presigned_url(:put)) body = "Hello World!" # This is the contents of your object. In this case, it's a simple string. Net::HTTP.start(url.host) do |http| http.send_request("PUT", url.request_uri, body, { # This is required, or Net::HTTP will add a default unsigned content-type. "content-type" => "", }) end puts obj.get.body.read # This will print out the contents of your object to the terminal window.