How to upload files from Amazon EC2 server to S3 bucket?

What is the default way to upload files from a EC2 web server to a S3 bucket for content delivery?


Solution 1:

The answer is rather dependent on the purpose. For instance, if your EC2 instance is running a PHP application, then using the PHP-SDK would be the best route. Some applications might find it useful to mount an S3 bucket as a local file-system (e.g. S3-fuse).

If however, you are simply trying to upload a file via the shell from EC2 to S3, I would recommend Tim Kay's aws script. It is a self-contained perl script that can run without installation, or can be installed to setup alias functions. Uploading a file to an existing bucket using this script amounts to the following:

s3put bucket_name/filename.ext /path/to/local/file/name.ext

It supports most of the features of AWS and is sufficiently verbose in its error messages to make debugging a problem fairly easy.

Solution 2:

You can use s3cp tool. It's a like of scp command. For download and documentation, see http://www.beaconhill.com/opensource/s3cp.html and http://aws.amazon.com/code/Java/3124

After install, you can for example copy to S3: s3cp local-file s3://bucket/object[/]