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

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

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

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

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 - 버전 3용 작업을 실행하는 Ruby 코드 예제입니다.

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.