使用AWS S3 Object Lifecycle,如何删除已删除的对象

时间:2014-12-14 10:16:36

标签: amazon-s3

有没有办法可以使用s3的对象生命周期来修剪当前的版本化对象并删除那些在它们上面有删除标记的对象,例如一个月或一周?如果没有,那么如何在版本化的铲斗上进行房屋清洁?

2 个答案:

答案 0 :(得分:7)

This page通常描述了对象生命周期管理。 This page更具体地描述了生命周期配置。

使用S3的内置生命周期无法完全满足您的需求。使用版本控制功能,有两种类型的对象:当前版本和旧的非当前版本。当前版本是最新的,最近上传的对象版本。现在,如果您对某个对象所做的最新事情是用删除标记覆盖它,请将删除标记视为当前版本。

使用S3的生命周期,您可以设置规则以在X天后永久删除非当前版本。 (您也可以设置规则,以便在X天之后移动到冰川。)但这听起来像你要求的规则,你可以永久删除非当前 - 但只有当前是 - 一,删除标记物。这本身不受支持。

如果您只想删除当前版本为删除标记的对象,则必须编写自己的列表代理来管理您的存储桶,枚举这些对象并自行删除它们。可能已有现有的工具;我没有检查过。

答案 1 :(得分:1)

是的,只需使用programmaticallyAmazon S3 API,就可以在广告资源console Amazon S3上设置生命周期配置。

通常在更新之前会有一些延迟,或者可能是新生命周期配置传播到Amazon S3系统。在完全生效之前可能会有几分钟的延迟。

并且在禁用或删除生命周期规则时,稍微延迟 Amazon S3 会停止安排新对象进行删除或转换。已安排的任何对象都将被取消安排,不会被删除或转换。

<强>删除

  • 创建非版本化删除请求
  • 指定版本化删除请求

可能有两个出现:

  • 如果version ID映射到特定对象版本,则Amazon S3会删除该对象的特定版本。

  • 如果version ID映射为删除该特定对象的标记,Amazon S3会删除删除标记。此对象再次显示在存储桶中。

检查http://docs.aws.amazon.com/AmazonS3/latest/dev/DeletingObjects.html