By Peter Cooper / November 30, 2006
There’s more about Amazon S3 and Marcel Molina’s hot new library coming as the first day of the Ruby Advent Calendar (this Friday!), so I don’t want to say too much about it yet. For anyone already enjoying this library, however, I put together a scrappy program that lets me copy files up to S3 from the command line easily:
#!/usr/bin/env ruby
require ‘rubygems’
require ‘aws/s3′
local_file = ARGV[0]
bucket = ARGV[1]
mime_type = ARGV[2] || "application/octet-stream"
AWS::S3::Base.establish_connection!(
:access_key_id => ‘REPLACE_ME’,
:secret_access_key => ‘REPLACE_ME’
)
base_name = File.basename(local_file)
puts "Uploading #{local_file} as ‘#{base_name}’ to ‘#{bucket}’"
AWS::S3::S3Object.store(
base_name,
File.open(local_file),
bucket,
:content_type => mime_type
)
puts "Uploaded!"
Just name it s3cp (or similar), chmod it, and then you can do stuff like:
s3cp ~/somefile.whatever bucket Read More