Amazon Simple Storage Service
开发人员指南 (API 版本 2006-03-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

使用预签名 URL 上传对象 (适用于 Ruby 的 AWS 开发工具包)

以下任务引导您通过 Ruby 脚本使用适用于 Ruby 的开发工具包 - 版本 3 和预签名 URL 来上传对象。

上传对象 - 适用于 Ruby 的开发工具包 - 版本 3

1

创建 Aws::S3::Resource 类的实例。

2

通过调用 Aws::S3::Resource 类实例的 #bucket[]#object[] 方法,提供存储桶名称和对象键。

通过创建 URI 类的实例生成预签名 URL,然后使用它分析 Aws::S3::Resource 类实例的 .presigned_url 方法。您必须将 :put 指定为 .presigned_url 的参数,如果需要上传对象,必须向 Net::HTTP::Session#send_request 指定 PUT

3

任何拥有预签名 URL 的人都可以上传对象。

上传将创建对象或将任何现有的对象替换为预签名 URL 中指定的相同键值。

以下 Ruby 代码示例演示使用 适用于 Ruby 的开发工具包 版本 3 实现的上述任务。

#Uploading an object using a pre-signed URL for 适用于 Ruby 的开发工具包 - 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.