即将过期的对象
当一个对象根据其生命周期配置达到其生命周期终点时,Amazon S3 会根据存储桶所处的状态采取行动。
-
不受版本控制的存储桶 – Amazon S3 会将该对象加入移除队列并异步移除该对象,从而永久移除该对象。
-
受版本控制的存储桶 – 如果当前对象版本不是删除标记,Amazon S3 将添加具有唯一的版本 ID 的删除标记。这会使当前对象版本变为非当前版本,并使删除标记变为当前版本。
-
已暂停版本控制的存储桶 – Amazon S3 创建版本 ID 为 null 的删除标记。此删除标记会在版本层次结构中将任何对象版本替换为 null 版本 ID,从而实际上删除对象。
对于受版本控制的存储桶(也即,已启用版本控制或已暂停版本控制),有一些指导 Amazon S3 如何处理过期操作的注意事项。对于启用版本控制或暂停版本控制的存储桶,以下内容适用:
-
对象过期仅适用于对象的当前版本(它对非当前对象版本没有影响)。
-
如果有一个或多个对象版本,并且删除标记是当前版本,则 Amazon S3 不会执行任何操作。
-
如果当前对象版本是唯一的对象版本并且它还是删除标记(也称为过期对象删除标记,在这种情况下,所有对象版本都已删除,您只剩下一个删除标记),则 Amazon S3 将删除过期对象删除标记。您还可以使用过期操作来指示 Amazon S3 移除所有过期对象删除标记。有关示例,请查看 示例 7:移除过期对象删除标记。
有关更多信息,请参阅在 S3 存储桶中使用版本控制。
重要
当您在 S3 生命周期配置中有多个规则时,对象可能变得有资格执行多个 S3 生命周期操作。在这种情况下,Amazon S3 遵循以下一般规则:
-
永久删除优先于转换。
-
转换优先于删除标记的创建。
-
当对象有资格进行 S3 Glacier Flexible Retrieval 和 S3 Standard-IA(或 S3 One Zone-IA)转换时,Amazon S3 将选择 S3 Glacier Flexible Retrieval 转换。
如何查找对象何时过期
要找出对象计划过期的时间,可使用 HEAD 对象或 GET 对象 API 操作。这些 API 操作返回的响应标头提供了对象不再可供缓存的日期和时间。
注意
过期日期和 Amazon S3 删除对象的日期之间可能会有一段延迟。对象过期后,不会再向您收取相关的过期或存储时间费用。
在更新、禁用或删除生命周期规则之前,请使用
LIST
API 操作(例如 ListObjectsV2、ListObjectVersions 和 ListMultipartUploads)或 Amazon S3 清单,根据您的应用场景验证 Amazon S3 是否已过渡符合条件的对象并使其过期。
最小存储持续时间收费
如果您创建的 S3 生命周期过期规则将促使在 S3 Standard-IA 或 S3 One Zone-IA 存储中存储不到 30 天的对象过期,则您需要支付 30 天的费用。如果您创建的生命周期过期规则将促使存储在 S3 Glacier Flexible Retrieval 存储中不到 90 天的对象过期,则您需要支付 90 天的费用。如果您创建的生命周期过期规则将促使存储在 S3 Glacier Deep Archive 存储中不到 180 天的对象过期,则您需要支付 180 天的费用。
有关更多信息,请参阅 Amazon S3 定价