Copy Contents of one S3 Bucket to Another.
🖊️ Austin Riba ⌚ 🔖 code 💬 12
Need to automate copying files from one Amazon S3 bucket to another? So did I. Everything I found on google, like this, was useless. Most of the scripts I found required downloading the objects first to the local machine and then reuploading them to the destination bucket. Unacceptable, especially if you are dealing with a large and or many files.
I’ve never done it. There is a cool library out there called right_aws . You can install it using #gem install right_aws
. Then simply copy this script:
{{< highlight ruby >}}
!/usr/bin/env ruby
require ‘right_aws’
S3ID = "Your AWS ID Here"
S3KEY = "Your AWS secret key"
SRCBUCKET = "Source Bucket"
DESTBUCKET = "Destination Bucket"
s3 = RightAws::S3Interface.new(S3ID, S3KEY)
objects = s3.list_bucket(SRCBUCKET)
objects.each do |o|
puts("Copying " + o[:key])
s3.copy(SRCBUCKET, o[:key], DESTBUCKET, o[:key])
end
puts("Done.")
{{< / highlight >}} Make sure the file is executable and you should be able to run it via command line on any unix system. To make a generic ruby script get rid of the first line.
I know there will only be removed with help from a database session. And I think I like Ruby :D