AWS S3 copy files and folders between two buckets
Copy between S3 Buckets
AWS (just recently) released a command line interface for copying between buckets.
http://aws.amazon.com/cli/
$ aws s3 sync s3://mybucket-src s3://mybucket-target --exclude *.tmp
..
This will copy from one target bucket to another bucket.
See the documentation here : S3 CLI Documentation
You can now do it from the S3 admin interface. Just go into one bucket select all your folders actions->copy
. Then move into your new bucket actions->paste
.
A simplified example using the aws-sdk gem:
AWS.config(:access_key_id => '...', :secret_access_key => '...')
s3 = AWS::S3.new
s3.buckets['bucket-name'].objects['source-key'].copy_to('target-key')
If you want to perform the copy between different buckets, then specify the target bucket name:
s3.buckets['bucket-name'].objects['source-key'].copy_to('target-key', :bucket_name => 'target-bucket')