s3w is a client to access and synchronise with Amazon Web Services’ Simple Storage Service (Amazon S3). It supports both direct access to S3 operations (GET, PUT, LIST, COPY, …) and higher-level functionality like bucket-to-bucket copy and pushing local directory structures into buckets. It is suitable for remote backups, including incremental backups, or for publishing content to S3 as well as ordinary manipulation of buckets.
s3w copybucket abucket.example.com:aprefix/ bbucket.example.com
All objects in abucket.example.com with keys starting aprefix/ will be copied to the corresponding keys in bbucket.example.com
s3w push –create-dir-nodes /a/local/directory/ abucket.example.com
The directory structure of /a/local/directory will be reproduced in abucket. Owner, group, and permissions metadata is replicated, allowing the tree to be reproduced locally using the pull command. s3w can also be used to push a website tree, including an index file on the directory node:
s3w push –directory-index=index.html webdir abucket.example.com
index.html in each directory, if found, will be put in the bucket as the contents of the directory node dirname/. The Content-Type header will be set appropriately for all files by autodetection locally if possible.
s3w also includes many other commands for manipulating buckets and their contents. The basic list of commands is produced by running s3w with no arguments; comprehensive documentation of each command is available with s3w command –help.
The latest release is s3w 0.6.0 (signature, md5sum 345055aa939e84870176036def5745b4). Installation and usage instructions are in the readme file in the source. s3w depends on Python 2.6 and the Boto library.
The source code is maintained in a Bazaar branch (currently on launchpad, along with the bugtracker).