如何在S3管理控制台删除90天以上对象?操作遇阻求助
S3存储桶生命周期规则删除90天以上对象故障排查
先明确三个选项的实际作用
- Expire current versions of objects:针对当前版本对象,未开启版本控制的桶会直接删除对象;开启版本控制的桶只会生成删除标记,不会真正删除对象。
- Permanently delete noncurrent versions of objects:仅处理被覆盖/删除过的旧版本对象,不影响当前版本。
- Delete expired objects, delete markers or incomplete multipart uploads:清理已过期的对象、无对应当前版本的删除标记,以及未完成的分段上传任务。
逐一排查故障原因
确认桶的版本控制状态
- 若桶开启了版本控制:仅用
Expire current versions of objects只会生成删除标记,不会真正删对象。需同时配置两个规则:- 规则1:勾选
Expire current versions of objects,设置90天,触发删除标记生成。 - 规则2:勾选
Delete expired objects, delete markers or incomplete multipart uploads,并勾选Delete delete markers that have no current version,让无对应当前版本的删除标记被清理,最终完成对象删除。
- 规则1:勾选
- 若桶未开版本控制:直接配置
Expire current versions of objects设90天即可,但要检查规则范围是否覆盖目标对象。
- 若桶开启了版本控制:仅用
检查规则的应用范围
- 确认规则是否设置了正确的前缀,如果只指定了特定前缀,其他前缀下的对象不会被处理。
- 若要覆盖全桶,需勾选Apply to all objects in the bucket选项。
核对对象的时间计算逻辑
- S3是按对象的最后修改时间计算过期时长,而非上传时间或其他时间。确认目标对象的最后修改时间确实超过了90天。
验证规则的生效时机与状态
- 生命周期规则不是实时执行的,S3后台每日运行一次任务,最多可能延迟24小时才会触发删除操作。
- 到控制台的Management标签下确认规则状态为Enabled,未被禁用。
排查对象特殊状态
- 加密对象不影响生命周期规则执行,只要你拥有对应解密权限即可。
- 未完成的分段上传任务,需单独在第三个选项里勾选Delete incomplete multipart uploads并设置90天,这类任务不属于普通对象,不会被前两个选项处理。
正确配置示例
场景1:未开启版本控制的桶
- 创建单条生命周期规则,勾选
Expire current versions of objects,设置Days after object creation为90。 - 确认规则应用范围为全桶或目标前缀,状态设为启用。
场景2:开启版本控制的桶
- 第一条规则:勾选
Expire current versions of objects,设置90天。 - 第二条规则:勾选
Delete expired objects, delete markers or incomplete multipart uploads,勾选Delete delete markers that have no current version,可设置0天(删除标记生成后立即清理)。 - 两条规则均需确认应用范围和启用状态。
内容的提问来源于stack exchange,提问作者Amjad
相关产品推荐
相关产品推荐

