我試圖找出一種方法來清理我的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