diff options
author | Ashlee Young <ashlee@onosfw.com> | 2015-09-09 22:15:21 -0700 |
---|---|---|
committer | Ashlee Young <ashlee@onosfw.com> | 2015-09-09 22:15:21 -0700 |
commit | 13d05bc8458758ee39cb829098241e89616717ee (patch) | |
tree | 22a4d1ce65f15952f07a3df5af4b462b4697cb3a /framework/src/onos/tools/build/uploadToS3.py | |
parent | 6139282e1e93c2322076de4b91b1c85d0bc4a8b3 (diff) |
ONOS checkin based on commit tag e796610b1f721d02f9b0e213cf6f7790c10ecd60
Change-Id: Ife8810491034fe7becdba75dda20de4267bd15cd
Diffstat (limited to 'framework/src/onos/tools/build/uploadToS3.py')
-rwxr-xr-x | framework/src/onos/tools/build/uploadToS3.py | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/framework/src/onos/tools/build/uploadToS3.py b/framework/src/onos/tools/build/uploadToS3.py new file mode 100755 index 00000000..a16235cd --- /dev/null +++ b/framework/src/onos/tools/build/uploadToS3.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python +""" +Upload a file to S3 +""" + +from sys import argv, stdout +from time import time +from os.path import basename +from optparse import OptionParser + +from boto.s3.key import Key +from boto.s3.connection import S3Connection + + +def uploadFile( filename, dest=None, bucket=None, overwrite=False ): + "Upload a file to a bucket" + if not bucket: + bucket = 'onos' + if not dest: + key = basename( filename ) + else: + key = dest + basename( filename ) #FIXME add the / + print '* Uploading', filename, 'to bucket', bucket, 'as', key + stdout.flush() + start = time() + def callback( transmitted, size ): + "Progress callback for set_contents_from_filename" + elapsed = time() - start + percent = 100.0 * transmitted / size + kbps = .001 * transmitted / elapsed + print ( '\r%d bytes transmitted of %d (%.2f%%),' + ' %.2f KB/sec ' % + ( transmitted, size, percent, kbps ) ), + stdout.flush() + conn = S3Connection() + bucket = conn.get_bucket( bucket ) + k = Key( bucket ) + k.key = key + if overwrite or not k.exists(): + k.set_contents_from_filename( filename, cb=callback, num_cb=100 ) + print + elapsed = time() - start + print "* elapsed time: %.2f seconds" % elapsed + else: + print 'file', basename( filename ), 'already exists in', bucket.name + +if __name__ == '__main__': + usage = "Usage: %prog [options] <file to upload>" + parser = OptionParser(usage=usage) + parser.add_option("-b", "--bucket", dest="bucket", + help="Bucket on S3") + parser.add_option("-d", "--dest", dest="dest", + help="Destination path in bucket") + parser.add_option("-k", "--key", dest="awsKey", + help="Bucket on S3") + parser.add_option("-s", "--secret", dest="awsSecret", + help="Bucket on S3") + parser.add_option("-f", "--force", dest="overwrite", + help="Overwrite existing file") + (options, args) = parser.parse_args() + + if len( args ) == 0: + parser.error("missing filenames") + for file in args: + uploadFile( file, options.dest, options.bucket, options.overwrite ) + + #FIXME key and secret are unused |