我的对象具有属性'Expiration': 'expiry-date="Sun, 16 Jul 2017 00:00:00 GMT"'
,用于定义何时删除此对象 - 此日期由生命周期规则中的S3设置。有没有办法从boto3更新此日期以便稍后自动删除此对象?顺便说一句,我在属性x-amz-expiration
中找到了相同的日期时间。
答案 0 :(得分:1)
虽然您的对象可能已经消失,但针对该特定主题已经有一个已回答的问题:s3 per object expiry
tl; dr:到期是每个S3存储桶,但通过模拟touch
,您可以延长单个对象的到期日期。
当您要求提供boto3
- 解决方案并且链接问题中没有注明这样的解决方案时,这里有一个boto3:
#!/usr/bin/env python3
import boto3
client = boto3.client('s3')
# Upload the object initially.
client.put_object(Body='file content',
Bucket='your-bucket',
Key='testfile')
# Replace the object with itself. That will "reset" the expiry timer.
# As S3 only allows that in combination of changing metadata, storage
# class, website redirect location or encryption attributes, simply
# add some metadata.
client.copy_object(CopySource='your-bucket/testfile',
Bucket='your-bucket',
Key='testfile',
Metadata={'foo': 'bar'},
MetadataDirective='REPLACE')