Amazon Simple Storage Service
开发人员指南 (API Version 2006-03-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

使用 适用于 Ruby 的 AWS 开发工具包 上传对象

以下任务引导您通过 Ruby 脚本上传任一 适用于 Ruby 的开发工具包 版本的对象。

使用适用于 Ruby 的 AWS 开发工具包 - 版本 2

适用于 Ruby 的 AWS 开发工具包 - 版本 2 通过两种方式将对象上传到 Amazon S3。第一种方式是通过托管的文件上传工具,可轻松从磁盘上传任何大小的文件。

上传文件

1

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

2

按存储桶名称和键引用目标对象。位于存储桶中的对象具有可识别该对象的唯一键。

2

在对象上调用 #upload_file

require 'aws-sdk' s3 = Aws::S3::Resource.new(region:'us-west-2') obj = s3.bucket('bucket-name').object('key') obj.upload_file('/path/to/source/file')

适用于 Ruby 的开发工具包 - 版本 2 上传对象的第二种方式是使用 Aws::S3::Object#put 方法。如果对象为字符串或者为不是磁盘上的文件的 IO 对象,此方式很有用。

Put Object

1

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

2

按存储桶名称和键引用目标对象。

2

调用传入字符串或 IO 对象的 #put

require 'aws-sdk' s3 = Aws::S3::Resource.new(region:'us-west-2') obj = s3.bucket('bucket-name').object('key') # string data obj.put(body: 'Hello World!') # IO object File.open('source', 'rb') do |file| obj.put(body: file) end

使用适用于 Ruby 的 AWS 开发工具包 - 版本 1

API 提供了包含选项的 #write 方法,这些选项用于指定如何上传您的数据。

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

1

通过提供 AWS 凭证创建 AWS::S3 类的实例。

2

使用包含数据参数和选项哈希的 AWS::S3::S3Object#write 方法,该方法允许您从文件或流上传数据。

以下 适用于 Ruby 的开发工具包 - 版本 1 代码示例演示了之前的任务并使用 options hash :file 来指定要上传的文件路径。

s3 = AWS::S3.new # Upload a file. key = File.basename(file_name) s3.buckets[bucket_name].objects[key].write(:file => file_name)

以下 适用于 Ruby 的开发工具包 - 版本 1 脚本示例将文件上传到 Amazon S3 存储桶。有关如何创建和测试有效示例的说明,请参阅 使用 适用于 Ruby 的 AWS 开发工具包 - 版本 2

#!/usr/bin/env ruby require 'rubygems' require 'aws-sdk' bucket_name = '*** Provide bucket name ***' file_name = '*** Provide file name ****' # Get an instance of the S3 interface. s3 = AWS::S3.new # Upload a file. key = File.basename(file_name) s3.buckets[bucket_name].objects[key].write(:file => file_name) puts "Uploading file #{file_name} to bucket #{bucket_name}."