Amazon web services 更新AWS S3到期时间
我想知道如何延长密钥的过期时间。我指的不是访问对象的签名URL,而是密钥本身 我将AWS设置为有一条规则,即bucket中的所有对象都应在90天内过期。这是我在大多数情况下希望发生的事情。有时我需要将单个密钥的生命周期延长90天。事实上,重置倒计时是可以的 我使用AWS SDK尝试了这一点,但没有效果 我的第一次尝试是使用copyObject更改元数据:Amazon web services 更新AWS S3到期时间,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我想知道如何延长密钥的过期时间。我指的不是访问对象的签名URL,而是密钥本身 我将AWS设置为有一条规则,即bucket中的所有对象都应在90天内过期。这是我在大多数情况下希望发生的事情。有时我需要将单个密钥的生命周期延长90天。事实上,重置倒计时是可以的 我使用AWS SDK尝试了这一点,但没有效果 我的第一次尝试是使用copyObject更改元数据: ObjectMetadata meta = s3client.getObjectMetadata( bucket, key ); meta.s
ObjectMetadata meta = s3client.getObjectMetadata( bucket, key );
meta.setExpirationTime( getFutureDate( 90*DAYS ) );
CopyObjectRequest copyObjectRequest = new CopyObjectRequest( bucket, key, bucket, key );
copyObjectRequest.setNewObjectMetadata( meta );
copyObjectRequest.setStorageClass( StorageClass.Standard );
s3client.copyObject( copyObjectRequest );
上述措施不起作用。JavaDoc甚至告诉我为什么(尝试后阅读)
然后,我尝试了基于此链接的上述变体(添加了setStorageClass):
非常感谢您的帮助。您似乎正在努力实现以下目标:
- 使用生命周期规则定义一个bucket,该规则将在90天后永久删除对象
- 将对象上载到bucket中
- 对于某些指定的对象,请重新启动90天超时
import boto
conn = boto.s3.connect_to_region('ap-southeast-2')
mybucket = conn.get_bucket('BUCKET-NAME')
mybucket.copy_key('OBJECT-NAME', 'BUCKET-NAME', 'OBJECT-NAME')
这段代码将对象复制到“自身”,管理控制台显示了一个新的上次修改日期。我没有测试生命周期规则,但我假设这是用于确定90天周期开始的日期。我确实有正确的答案。下面的Python代码可能会执行相同的技巧,将BUCKET/KEY复制到自身上,并且还会重置过期时间。AWS S3根据24小时时钟将到期时间四舍五入到同一时间,因此不会注意到在同一天进行的任何复制。在90天的刷新中,我让密钥保留了一周左右的时间来进行测试,看起来“最后一次修改”+ExpirationRuleDays=“expiration Date”仍然有效 我创建了两个键,在运行下面的代码之后,我从S3管理控制台获得了下面的表单 旧版-1
Last Modified: Thu Jun 04 15:48:58 GMT-700 2015
Expiry Date: Wed Sep 02 17:00:00 GMT-700 2015
Expiration Rule: Auto-Expire after 90 days
Last Modified: Mon Jun 08 15:37:01 GMT-700 2015
Expiry Date: Sun Sep 06 17:00:00 GMT-700 2015
Expiration Rule: Auto-Expire after 90 days
新增-1
Last Modified: Thu Jun 04 15:48:58 GMT-700 2015
Expiry Date: Wed Sep 02 17:00:00 GMT-700 2015
Expiration Rule: Auto-Expire after 90 days
Last Modified: Mon Jun 08 15:37:01 GMT-700 2015
Expiry Date: Sun Sep 06 17:00:00 GMT-700 2015
Expiration Rule: Auto-Expire after 90 days
旧版-2
Last Modified: Thu Jun 04 13:34:36 GMT-700 2015
Expiry Date: Wed Sep 02 17:00:00 GMT-700 2015
Expiration Rule: Auto-Expire after 90 days
Last Modified: Mon Jun 08 15:41:19 GMT-700 2015
Expiry Date: Sun Sep 06 17:00:00 GMT-700 2015
Expiration Rule: Auto-Expire after 90 days
新-2
Last Modified: Thu Jun 04 13:34:36 GMT-700 2015
Expiry Date: Wed Sep 02 17:00:00 GMT-700 2015
Expiration Rule: Auto-Expire after 90 days
Last Modified: Mon Jun 08 15:41:19 GMT-700 2015
Expiry Date: Sun Sep 06 17:00:00 GMT-700 2015
Expiration Rule: Auto-Expire after 90 days
代码:
你所说的“上述措施不起作用”是什么意思?它跑了吗?它是否给出了一个错误?这看起来像是与上面的Java示例相同的Python,并且可能也会工作。我得到了最后一次修改数据的确认,该数据用于确定90天的开始,尽管面包屑非常混乱。