【问题标题】:S3 Lifecycle rule does not remove expired object delete markersS3 生命周期规则不删除过期对象删除标记
【发布时间】:2020-07-28 22:25:43
【问题描述】:

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

桶是:

  • 启用版本控制
  • 具有跨区域复制规则,因此所有内容都备份到另一个区域的另一个存储桶中

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

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

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

【问题讨论】:

  • 当您“删除(使用 UI)一堆对象”时,您是使用Hidden=Show 并删除了对象的特定版本,还是只是删除对象?如果您只是删除了对象(而不是版本),那么它将保留对象并添加删除标记。版本化对象仍然存在。
  • @JohnRotenstein 抱歉,我应该澄清一下,删除是通过 UI 和此生命周期规则进行的。实际上,主要是生命周期规则。我已经梳理了数据,使用hidden=show 选项卡,它肯定只剩下删除标记。

标签: amazon-s3


【解决方案1】:

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

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

需要注意的是,生命周期实际上可能需要一些时间 使对象过期或删除标记,即使它将它们标记为 符合条件并将其放入队列中。所以,虽然 S3 停止充电一次 对象被标记为过期,它们可能会继续存在直到 生命周期实际上使它们过期。此外,这个持续时间是 也受到生命周期服务的整体负载的影响 特定的 AWS 区域。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 2020-12-10
    • 1970-01-01
    • 2019-12-05
    • 2019-05-06
    • 1970-01-01
    相关资源
    最近更新 更多