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

Terraform配置S3生命周期规则:如何过期指定目录下的对象?

修正后的配置

你现有的配置存在两个问题:一是prefix值拼写错误,和你实际使用的目录名不匹配;二是额外加了标签过滤规则,而你的目标文件没有对应标签,导致规则无法生效。直接使用以下配置即可实现需求:

lifecycle_rules = [
    {
      id      = "log"
      enabled = true
      prefix  = "logs/"

      expiration = {
        days = 365
      }
    }
  ]

配置说明

  • prefix参数逻辑

S3是对象存储,没有实际的文件系统目录结构,所有“路径”本质都是对象键(Object Key)的前缀字符串。比如你存放在logs目录下的file1,完整对象键是logs/file1;存放在failed_logs子目录下的file3,完整对象键是logs/failed_logs/file3。
当你把prefix设为logs/时,S3会自动匹配所有对象键以该字符串开头的对象,包含logs/下的所有一级文件和所有子目录下的文件,刚好覆盖你要自动过期的范围。

  • 过滤范围验证

    • 会命中规则自动过期的对象:所有logs/目录及其子目录下的文件,完全符合你给出的file1~file4的过期时间要求
    • 不会命中规则的对象:根目录下的所有文件,包括你要保留的nonlogfile.exe、log_file_that_i_DONT_wanna_delete.log(后者的对象键开头是log_file,和logs/前缀不匹配,不会被误删)
  • 标签过滤的删除原因

你不需要基于标签匹配对象,所以直接移除tags块即可,否则规则只会同时匹配前缀+对应标签的对象,你没给文件打标签的话规则不会生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:24:00