메뉴
Amazon Simple Storage Service
개발자 안내서 (API Version 2006-03-01)

미리 서명된 URL을 사용하는 객체 업로드(Ruby용 AWS SDK)

다음 작업은 두 가지 버전의 Ruby용 SDK에 대해 미리 서명된 URL을 사용하여 객체를 업로드하는 Ruby 스크립트를 사용하는 방법을 보여줍니다.

Ruby용 AWS SDK - 버전 2 사용

다음 작업은 Ruby용 SDK - 버전 2에 대해 미리 서명된 URL을 사용하여 객체를 업로드하는 Ruby 스크립트를 사용하는 방법을 보여줍니다.

객체 업로드 - Ruby용 SDK - 버전 2

1

Aws::S3::Resource 클래스의 인스턴스를 만듭니다.

2

Aws::S3::Resource 클래스 인스턴스의 #bucket[]#object[] 메서드를 호출하여 버킷 이름과 객체 키를 제공합니다.

URI 클래스의 인스턴스를 만들어 미리 서명된 URL을 생성한 후 이를 사용하여 Aws::S3::Resource 클래스 인스턴스의 .presigned_url 메소드를 파싱합니다. :put.presigned_url에 대한 인수로 지정해야 하며, 객체를 업로드하려는 경우 PUTNet::HTTP::Session#send_request에 지정해야 합니다.

3

미리 서명된 URL을 가진 사용자는 누구나 객체를 업로드할 수 있습니다.

업로드는 객체를 생성하거나 기존 객체를 미리 서명된 URL에서 지정된 동일한 키로 대체합니다.

다음은 위에서 설명한 Ruby용 SDK - 버전 2용 작업을 실행하는 Ruby 코드 예제입니다.

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.

Ruby용 AWS SDK - 버전 1 사용

객체 업로드 - Ruby용 SDK - 버전 1

1

AWS:S3 클래스의 인스턴스를 만듭니다.

2

AWS::S3::S3Object 클래스 인스턴스의 #bucket[]#object[] 메서드를 호출하여 버킷 이름과 객체 키를 제공합니다.

AWS::S3 클래스 인스턴스의 .url_for 메서드를 호출하여 미리 서명된 URL을 생성합니다. :put.url_for에 대한 인수로 지정해야 하며, 객체를 업로드하려는 경우 PUTNet::HTTP::Session#send_request에 지정해야 합니다.

3

미리 서명된 URL을 가진 사용자는 누구나 객체를 업로드할 수 있습니다.

업로드는 객체를 생성하거나 기존 객체를 미리 서명된 URL에서 지정된 동일한 키로 대체합니다.

다음은 위에서 설명한 Ruby용 AWS SDK - 버전 2용 작업을 실행하는 Ruby 코드 예제입니다.

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.