/s3-multipart

Utilities to do parallel upload/download with Amazon S3

Primary LanguagePythonApache License 2.0Apache-2.0

Utilities to do parallel upload/download with Amazon S3

Install with Pip

pip install -r requirements.txt

Install without Pip

easy_install -U boto

Parallel download (s3-mp-download)

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

Parallel upload (s3-mp-upload)

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

Credits

As always, mad props to the Boto project and it's maintainer, Mitch https://github.com/boto/boto

License

Copyright 2012, David Arthur under Apache License, v2.0. See LICENSE