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

使用 适用于 Ruby 的 AWS 开发工具包 复制对象

以下任务将引导您使用 Ruby 类将 Amazon S3 中的对象从一个存储桶复制到另一存储桶,或者复制同一存储桶中的对象。

复制对象

1

通过提供 AWS 凭证创建 AWS::S3 类的实例。有关如何提供您的 AWS 凭证的更多信息,请参阅使用 AWS 账户或 IAM 用户凭证进行请求

2

执行AWS::S3::S3Object#copy_toAWS::S3::S3Object#copy_from 方法。您需要提供诸如源存储桶名称、源键名称、目标存储桶名称和目标键等请求信息。

下面的 Ruby 代码示例通过使用 #copy_to 方法将对象从一个存储桶复制到另一个存储桶,演示了上述任务。

Copy
s3 = AWS::S3.new # Upload a file and set server-side encryption. bucket1 = s3.buckets[source_bucket] bucket2 = s3.buckets[target_bucket] obj1 = bucket1.objects[source_key] obj2 = bucket2.objects[target_key] obj1.copy_to(obj2)

下面的 Ruby 脚本示例使用 #copy_from 方法来创建对象的副本。使用其他键复制的对象将保存在同一源存储桶中。有关如何创建和测试有效示例的说明,请参阅 使用 适用于 Ruby 的 AWS 开发工具包 - 版本 2

Copy
#!/usr/bin/env ruby require 'rubygems' require 'aws-sdk' bucket_name = '*** Provide bucket name ***' source_key = '*** Provide source key ***' target_key = '*** Provide target key ***' # Get an instance of the S3 interface. s3 = AWS::S3.new # Copy the object. s3.buckets[bucket_name].objects[target_key].copy_from(source_key) puts "Copying file #{source_key} to #{target_key}."