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

AWS S3生命周期规则配置问询:仅删除根目录JSON文件

如何通过S3生命周期规则仅删除根目录下的JSON文件?

没问题,这个需求完全可以通过S3的生命周期规则实现,核心是利用S3对象键的特性精准匹配根目录的JSON文件——毕竟S3里没有真正的文件夹,所有内容都是带路径的对象键(比如根目录的file.json和子文件夹里的folder1/file.json是完全不同的对象键)。

下面是具体的实现步骤和逻辑:

核心逻辑说明

根目录下的JSON文件,对象键的特点是不包含任何斜杠(/)且以.json结尾;而子文件夹里的文件,对象键必然带有斜杠(比如folder2/objectKey.json)。所以我们只需要创建一个规则,精准匹配这类根目录的JSON对象即可。

控制台操作步骤

  1. 登录AWS控制台,打开目标S3桶,切换到「管理」标签页,找到「生命周期规则」选项。
  2. 点击「创建规则」,给规则起个好记的名字(比如Delete-Root-JSON-Files)。
  3. 在「应用范围」部分,选择「对所有对象应用此规则」,然后展开「筛选条件」:
    • 前缀:留空(代表匹配根目录下的对象,不包含任何子路径)
    • 后缀:填入.json(只匹配JSON格式的文件)
  4. 切换到「操作」部分,添加「过期」操作(如果需要永久删除,也可以结合「非当前版本过期」等,根据你的版本控制需求调整):
    • 比如设置「在对象创建后 1 天过期」,如果想立即删除,可以设置过期日期为当前日期(注意:Days参数最小是1,所以用日期更直接)。
  5. 确认所有配置后,保存规则即可。

CLI命令创建规则(可选)

如果你习惯用命令行,可以用aws s3api工具直接上传生命周期配置,示例配置如下:

{
  "Rules": [
    {
      "ID": "DeleteRootJSONFiles",
      "Filter": {
        "And": {
          "Prefix": "",
          "Suffix": ".json"
        }
      },
      "Status": "Enabled",
      "Expiration": {
        "Days": 1
      }
    }
  ]
}

执行命令:

aws s3api put-bucket-lifecycle-configuration --bucket YOUR_BUCKET_NAME --lifecycle-configuration file://lifecycle-rule.json

测试建议

为了确保规则符合预期,建议先上传两个测试文件:

  • 根目录下的test-root.json
  • 子文件夹folder1里的test-sub.json

等待规则生效后(一般几分钟内),检查只有根目录的文件被标记为过期/删除,子文件夹的文件不受影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:17:05