![]() |
RTBKit
0.9
Open-source framework to create real-time ad bidding systems.
|
00001 """ 00002 Cancels multipart upload that are more that have been 00003 initiated more than 24h ago. 00004 """ 00005 import argparse 00006 from boto.s3.connection import S3Connection 00007 from datetime import datetime, timedelta 00008 00009 parser = argparse.ArgumentParser() 00010 parser.add_argument("-i", "--id", help="S3 key id", required=True) 00011 parser.add_argument("-k", "--key", help="S3 key", required=True) 00012 args = parser.parse_args() 00013 00014 conn = S3Connection(args.id, args.key) 00015 now = datetime.now() 00016 for bucket in conn.get_all_buckets(): 00017 for mp in bucket.list_multipart_uploads(): 00018 initiated = datetime.strptime(mp.initiated[0:-5], "%Y-%m-%dT%H:%M:%S") 00019 expires = initiated + timedelta(days=1) 00020 if expires < now: 00021 print "Canceling upload for {0}/{1}. Expires: {2}" \ 00022 .format(bucket.name, mp.key_name, expires) 00023 try: 00024 mp.cancel_upload() 00025 except Exception as e: 00026 print "-" + str(e) 00027 else: 00028 print "Keeping {0}/{1}. Expires: {2}" \ 00029 .format(bucket.name, mp.key_name, expires) 00030