Guest User

Untitled

a guest
Oct 17th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. import sys, StringIO
  2. import argparse
  3. from boto.s3.connection import S3Connection
  4. def read_in_chunks(file_object, chunk_size=1024):
  5. """Lazy function (generator) to read a file piece by piece.
  6. Default chunk size: 1k."""
  7. while True:
  8. data = file_object.read(chunk_size)
  9. if not data:
  10. break
  11. yield data
  12. def upload(bucket_name, key_name):
  13. conn = S3Connection()
  14.  
  15. b = conn.create_bucket(bucket_name)
  16. mp = b.initiate_multipart_upload(key_name)
  17. for index,piece in enumerate(read_in_chunks(sys.stdin,5242880), start=1):
  18. fp = StringIO.StringIO(piece)
  19. mp.upload_part_from_file(fp, index)
  20.  
  21. mp.complete_upload()
  22.  
  23. def main():
  24. parser = argparse.ArgumentParser(description='Process streams to s3')
  25. parser.add_argument('bucket_name',help='bucket to upload to')
  26. parser.add_argument('key_name',help='key to upload to')
  27. args = parser.parse_args()
  28. return args
  29.  
  30. if __name__ == "__main__":
  31. args = main()
  32. upload(args.bucket_name,args.key_name)
Add Comment
Please, Sign In to add comment