Utilities to do parallel upload/download with Amazon S3
pip install -r requirements.txt
easy_install -U boto
Utilizes S3's support for the Range HTTP header, fetches multiple chunks of the file in parallel. See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
$ ./s3-mp-download.py -h
usage: s3-mp-download [-h] [-np NUM_PROCESSES] [-f] src dest
Download a file from S3 in parallel
positional arguments:
src The S3 key to download
dest The destination file
optional arguments:
-h, --help show this help message and exit
-np NUM_PROCESSES, --num-processes NUM_PROCESSES
Number of processors to use
-f, --force Overwrite an existing file
Utilizes the Multipart Upload feature of S3. Splits up the local file into chunks and uploads them in parallel. See: http://aws.typepad.com/aws/2010/11/amazon-s3-multipart-upload.html
usage: s3-mp-upload [-h] [-n NUM_PROCESSES] [-f] [-s SPLIT] src dest
Transfer large files to S3
positional arguments:
src The file to transfer
dest The S3 destination object
optional arguments:
-h, --help show this help message and exit
-n NUM_PROCESSES, --num-processes NUM_PROCESSES
Number of processors to use
-f, --force Overwrite an existing S3 key
-s SPLIT, --split SPLIT
Split size, in Mb
As always, mad props to the Boto project and it's maintainer, Mitch https://github.com/boto/boto