미리 서명된 URL을 사용하여 객체 업로드(Ruby용 AWS SDK) - Amazon Simple Storage Service

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

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

1

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

2

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

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

3

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

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

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

# Upload an object using a presigned URL for SDK for Ruby - Version 3. require 'aws-sdk-s3' require 'net/http' s3 = Aws::S3::Resource.new(region: 'us-west-2') # Replace BucketName with the name of your bucket. # Replace KeyName with the name of the object you are creating or replacing. obj = s3.bucket('BucketName').object('KeyName') url = URI.parse(obj.presigned_url(:put)) # The contents of your object, as a string body = 'Hello World!' Net::HTTP.start(url.host) do |http| http.send_request('PUT', url.request_uri, body, # Or else Net::HTTP adds a default, unsigned content-type 'content-type' => '') end # Print the contents of your object to the terminal window puts obj.get.body.read