我想知道如何延长密钥的有效期。我指的不是访问对象的签名 URL,而是密钥本身。
我将 AWS 设置为存储桶中的所有对象应在 90 天后过期的规则。在大多数情况下,这就是我希望发生的事情。有时我需要将单个密钥的使用寿命最多再延长 90 天。事实上,重置倒计时就可以了。
我已经使用 AWS SDK 尝试过此操作,但没有成功。
我的第一次尝试是使用 copyObject 更改元数据:
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 甚至告诉我原因(尝试后阅读)。
void com.amazonaws.services.s3.model.ObjectMetadata.setExpirationTime(Date expirationTime)
For internal use only. This will *not* set the object's expiration time, and is only used to set the value in the object after receiving the value in a response from S3.
然后我根据此链接尝试了上述内容的变体(添加了 setStorageClass):https://alestic.com/2013/09/s3-lifecycle-extend/ https://alestic.com/2013/09/s3-lifecycle-extend/
任何帮助表示赞赏。