boto3 S3:更新对象的`expiry-date`

时间:2017-07-14 16:15:01

标签: amazon-s3 boto3

我的对象具有属性'Expiration': 'expiry-date="Sun, 16 Jul 2017 00:00:00 GMT"',用于定义何时删除此对象 - 此日期由生命周期规则中的S3设置。有没有办法从boto3更新此日期以便稍后自动删除此对象?顺便说一句,我在属性x-amz-expiration中找到了相同的日期时间。

1 个答案:

答案 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')