You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AWS S3对象生命周期规则清理非月初创建的旧备份对象

针对你这个S3备份策略的调整需求,我来一步步拆解怎么配置生命周期规则,完美匹配你的三层保留逻辑。

核心策略拆解

首先把你的需求转化为S3生命周期规则能识别的明确条件:

  • 最近30天:所有备份对象完全保留,不做任何删除或存储层级转移操作
  • 30天 ≤ 存储时长 < 365天:仅保留每月1日创建的备份,其余不符合条件的旧对象直接永久删除
  • 存储时长 ≥ 365天:仅保留每年1月1日创建的备份,其余不符合条件的旧对象直接永久删除
  • 如果你还想继续把需要保留的旧对象转移到Glacier,得调整原有的转移规则,只对符合保留条件的对象执行转移
具体配置步骤(控制台操作)

打开S3控制台,进入目标存储桶后切换到「管理」标签页的「生命周期规则」,按顺序创建以下规则(注意规则优先级:先创建的规则会先匹配执行):

1. 保留最近30天的所有备份

  • 规则名称:Keep-All-Last-30-Days(自定义即可,清晰好认)
  • 适用范围:选择你的备份对象前缀(比如backups/),如果是全桶备份就选「整个存储桶」
  • 生命周期操作:不要配置任何删除或转移操作,这条规则的作用是确保最近30天的所有对象不会被后续规则误处理

2. 清理30-365天内非每月1日的备份

  • 规则名称:Cleanup-Non-1st-Day-Month-30-365
  • 适用范围:同上述备份前缀/全桶
  • 过滤条件:
    • 添加「对象创建时间」条件:设置为大于等于30天且小于365天
    • 添加「对象创建日期 - 日」条件:设置为不等于1
  • 生命周期操作:选择「永久删除」,满足条件的对象会被自动清理

3. 清理365天以上非每年1月1日的备份

  • 规则名称:Cleanup-Non-1st-Jan-After-365
  • 适用范围:同上述备份前缀/全桶
  • 过滤条件:
    • 添加「对象创建时间」条件:设置为大于等于365天
    • 添加组合条件:「对象创建日期 - 月」不等于1 或者 「对象创建日期 - 日」不等于1(也就是只有1月1日创建的对象才会被保留)
  • 生命周期操作:选择「永久删除」

4. 调整Glacier转移规则(可选)

如果你还想把需要保留的旧对象转移到Glacier冷存储,创建这条规则:

  • 规则名称:Transfer-Retained-To-Glacier
  • 适用范围:同上述备份前缀/全桶
  • 过滤条件:
    • 配置两个组合条件的「或」逻辑:
      1. 对象创建时间≥30天 且 <365天 且 创建日=1
      2. 对象创建时间≥365天 且 创建月=1 且 创建日=1
  • 生命周期操作:选择「转移到Glacier灵活检索」(或根据业务需求选其他Glacier层级,比如批量检索)
关键注意事项
  • 规则顺序很重要:一定要先创建「保留最近30天」的规则,S3会按规则创建顺序匹配,避免最近的备份被误删
  • 验证对象创建时间:确保S3对象的「创建时间」(即LastModified时间)和你的备份实际创建时间一致,如果是通过脚本上传的备份,要确认上传时没有修改文件的时间戳
  • 先测试再上线:建议先在测试存储桶配置相同规则,用少量测试对象验证效果,确认符合预期后再应用到生产存储桶
  • Glacier成本考量:如果需要恢复旧备份,要注意Glacier的检索费用和恢复时长,选择适合业务场景的存储层级

内容的提问来源于stack exchange,提问作者Mav2287

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:01:04