我试图找出一种方法来清理我的S3桶。我想删除所有超过X天的密钥(在我的情况下,X是30天)。S3使用boto的对象过期
我找不出一种方法来删除s3中的对象。我使用了以下方法,其中没有一个能够工作(通过工作,我的意思是我在X天后尝试获取对象,并且s3仍在服务该对象。我期待“找不到对象”或“对象已过期”消息
方法1:
k = Key(bucket)
k.key = my_key_name
expires = datetime.utcnow() + timedelta(seconds=(10))
expires = expires.strftime("%a, %d %b %Y %H:%M:%S GMT")
k.set_contents_from_filename(filename,headers={'Expires':expires})
方法2:
k = Key(bucket)
k.key = "Event_" + str(key_name) + "_report"
expires = datetime.utcnow() + timedelta(seconds=(10))
expires = expires.strftime("%a, %d %b %Y %H:%M:%S GMT")
k.set_meta_data('Expires', expires)
k.set_contents_from_filename(filename)
如果任何人都可以分享这是为他们工作的代码,它删除S3对象,这将非常好
我是想测试这一点,并想知道如果到期可以用分/秒进行测试检查。 看起来像days = 1是可以使用的最短时间 – user2005798 2013-02-22 21:23:08
没有办法使用分钟/秒。最低限度为0天,唯一的保证是AWS根据[PUT Bucket生命周期](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html)在次日午夜UTC之前采取行动。 。 – MeSee 2013-08-20 05:09:01
请将LifeCycle更改为“from boto.s3.lifecycle import LifeCycle”中的生命周期,因为Lifecycle是正确的类名称。 – AliBZ 2013-08-31 00:03:40