为什么即使我一天多以前便应用了生命周期规则,它仍然对 Amazon S3 存储桶不起作用?

上次更新时间:2019 年 12 月 20 日

我在 Amazon Simple Storage Service (Amazon S3) 存储桶上设置了生命周期配置规则,以便将对象转换成另一种存储类或使对象过期。但是,对象未根据规则发生更改。为什么会发生这种情况?

解决方法

生命周期规则的满足时间与该规则操作的完成时间之间可能存在延迟。当生命周期规则得到满足时,即使操作未完成,也会发生账单变更。这种情况的示例包括:

  • 如果您有一个使对象过期的生命周期规则,则在该对象到期时间后不会向您收取存储费用,即使对象没有立即到期。
  • 如果您有一个将对象转换为 GLACIER 存储类的生命周期规则,则当对象转换时间结束后,仍会向您收取 Amazon S3 Glacier 存储费,即使对象未立即转换为 GLACIER 存储类。
    注意:如果您设置了至 INTELLIGENT_TIERING 存储类的生命周期转换,则在对象转换为 INTELLIGENT_TIERING 存储类之前,不会发生账单变更。这是异常情况。

此外,Amazon S3 将对象的转换或到期日期四舍五入为UTC 时间第二天零点。例如,如果您在 UTC 时间 2020 年 1 月 1 日 10:30 创建了一个对象,并将生命周期规则设置为 3 天后转换对象,则该对象的转换日期为 UTC 时间 2020 年 1 月 5 日 00:00。检查生命周期规是否得到满足之前,务必验证是否已过去足够的时间。

如果过去了足够的时间且您的生命周期规则仍未得到满足,则验证相关对象的前缀筛选条件是否在生命周期规则上进行了正确设置。示例有:

  • 如果生命周期规则中没有指定前缀筛选条件,则规则会应用于存储桶中的所有对象。
  • 如果您将前缀筛选条件指定为 images/,则生命周期规则会应用于前缀 images/ 下的所有对象。
    注意:请确保在前缀筛选条件结尾指定 / 字符。如果 / 字符在前缀筛选条件的开头,则生命周期规则无法得到正确评估。

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?