S3 生命周期规则不会删除过期的对象删除标记

Nat*_*H06 3 amazon-s3

我有一个 S3 存储桶,它不会删除过期的对象删除标记。

桶是:

  • 启用版本控制
  • 有跨地域复制规则,所以一切都备份到另一个地域的另一个bucket

我设置的生命周期规则(下图):

  • 适用于整个存储桶
  • 没有过渡
  • 仅适用于以前的版本
  • 永久删除以前设置为 1 天的版本
  • 清除设置为 true 的过期对象删除标记

我浏览并删除了(使用 UI EDIT: 和生命周期规则)一堆对象,并且我能够验证生命周期规则在 1 天的间隔后确实永久删除了原始对象,但是它们的删除标记(现在技术上已过期的对象删除标记)仍然存在。已经 5 天了,删除标记仍然存在。为了永久删除删除标记,我还需要做些什么吗?

生命周期规则到期

Nat*_*H06 6

事实证明,这个问题的答案是:耐心。生命周期规则 DID 最终会清除过期的对象删除标记。

我删除了大约 100TB 的数据,因此它生成了相当多的过期对象删除标记 - 所以 AWS 花了 > 1 周的时间来启动并删除它们。在获得客户支持后 - 他们提到了一些有助于理解这一点的事情,强调我的:

应该注意的是 Lifecycle 可能需要一些时间才能使对象实际过期或删除标记,即使它将它们标记为合格并将它们放入队列中。因此,尽管一旦对象被标记为过期,S3 就会停止收费,但它们可能会继续存在,直到 Lifecycle 真正使它们过期。此外,此持续时间还受该特定 AWS 区域的 Lifecycle 服务总体负载的影响。

话虽如此,请注意,S3 生命周期最终会过期/转换符合条件的对象,但它没有可依赖的固定 SLA。在大多数用例中,这是正常且可接受的。而对于需要及时清理删除标记的用例,最好有一些其他进程同步删除这些删除标记,而不是等待 Lifecycle 最终清理它们。