rubyamazon-web-servicesamazon-s3buckets

Copying a file inside an S3 bucket (ruby)


I'm using gem aws-sdk-ruby and I want to copy a file /images/image_a.png to /profile.png all resides inside the same bucket.

How can I do that?


Solution

  • Extracted from the documentation, you'll have to use the copy_to. For instance:

    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)