You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何通过S3生命周期规则删除指定日期前创建的所有对象?

Amazon S3 生命周期规则实现指定日期前对象删除方案

直接基于对象创建日期配置(无需标签)

完全可行,这是S3生命周期规则的原生能力,完全不需要编写遍历程序:

  • 进入S3控制台,找到目标存储桶,切换到「管理」标签页,点击「生命周期规则」>「创建规则」。
  • 填写规则名称,应用范围可选「整个存储桶」或特定前缀(如果仅需处理部分对象)。
  • 添加「过期」操作:在「操作」环节选择「过期」,然后在「过期对象」条件里,选「创建日期早于」,输入你指定的目标日期。
  • 保存规则后,S3会在后台自动扫描并删除所有符合条件的对象,无需手动干预,通常24-48小时内开始执行。

结合标签与筛选器的精细化配置

如果需要针对特定标签的对象执行删除(比如只清理标记为归档的旧对象),可以结合标签筛选实现:

  • 先给需要处理的对象批量添加统一标签(例如CleanupTarget: Yes),可通过S3控制台批量操作、AWS CLI命令aws s3api put-object-tagging完成。
  • 创建生命周期规则时,在「筛选条件」中添加标签匹配规则(例如键为CleanupTarget,值为Yes)。
  • 同时设置「创建日期早于」指定日期的过期条件,规则只会作用于带指定标签且创建时间符合要求的对象。

注意事项

  • 若存储桶开启了版本控制,需明确规则作用于当前版本还是旧版本:如果要删除旧版本,需在操作中选择「过期旧版本对象」并设置对应的日期条件。
  • 生命周期规则的执行是异步的,对象数量较多时可能需要更长时间完成,但无需人工参与。
  • 也可以通过AWS CLI创建规则,示例命令(针对整个存储桶,删除2024-01-01前创建的对象):
    aws s3api put-bucket-lifecycle-configuration --bucket your-bucket-name --lifecycle-configuration '{
      "Rules": [
        {
          "ID": "DeleteOldObjects",
          "Filter": {},
          "Status": "Enabled",
          "Expiration": {
            "Date": "2024-01-01T00:00:00Z"
          }
        }
      ]
    }'
    

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

火山引擎 最新活动