使用ruby在s3中copy_to

时间:2013-11-22 10:39:15

标签: ruby ruby-on-rails-3 amazon-s3

尝试在s3中将图像从存储桶复制到另一个存储桶。

     AWS.config(
          :access_key_id => 'Bucket one key', 
          :secret_access_key => 'bucket one secret key'
     )
     s3 = AWS::S3.new

     bucket1 = s3.buckets["Bucket_one"]
     bucket2 = s3.buckets["Bucket_two"]
     obj1 = bucket1.objects["source_key"]
     obj2 = bucket2.objects["destination_key"]

     obj1.copy_to(obj2)

您能否指导我如何检索已在S3中上传的文件的源密钥?我有destination_key,bucket_one和bucket_two。

1 个答案:

答案 0 :(得分:0)

S3上的图像不是单个文件,而是从图像名称开始的多个文件名。 因此,您需要知道图像的名称。 一旦你得到它,可能看起来像:

bucket1 = s3.buckets["Bucket_one"]
bucket2 = s3.buckets["Bucket_two"]
bucket1.objects.with_prefix(image_name).each do |source_object|
  source_object.copy_to(bucket2.objects[source_object.key])
end