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

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

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

AWS SDK for Ruby バージョン 2 の使用

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

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

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 バージョン 2 用の前述のタスクを実装したものです。

Copy
#Uploading an object using a pre-signed URL for Ruby の SDK - Version 2. require 'aws-sdk-resources' 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.

AWS SDK for Ruby バージョン 1 の使用

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

1

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

2

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

AWS::S3 クラスインスタンスの .url_for メソッドを呼び出して、署名付き URL を生成します。オブジェクトをアップロードする場合、.url_for の引数として :put を指定し、Net::HTTP::Session#send_requestPUT を指定する必要があります。

3

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

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

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

Copy
#Uploading an object using a pre-signed URL for Ruby の SDK - Version 1. require 'aws-sdk-v1' require 'net/http' s3 = AWS::S3.new(region:'us-west-2') obj = s3.buckets['BucketName'].objects['KeyName'] # Replace BucketName with the name of your bucket. # Replace KeyName with the name of the object you are creating or replacing. url = obj.url_for(:write, :content_type => "text/plain") 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, {"content-type" => "text/plain",}) # The content-type must be specified in the pre-signed url. end puts obj.read # This will print out the contents of your object to the terminal window. puts obj.content_type # This will print out the content type of your object to the terminal window.