删除 S3 过时的生命周期规则

Remove S3 obsolete lifecycle rule

S3使用当前场景

  1. 存储的一般文件没有过期日期。
  2. 存档文件:保存在存档文件夹(文件夹的有效期设置)中,有效期为30天。

现在可以选择将某些存档文件的保留日期增加 n 天。 示例:存档文件 1 - 保留天数增加到 5 天。所以,现在我必须将文件移出存档文件夹并为 file-1 创建一个单独的到期日期。 但问题是,当 file-1 从 s3 中删除时,其关联的生命周期仍然存在。

所以,我想删除未使用的生命周期。 有什么方法可以识别过时的生命周期吗?

我建议不要使用 S3 生命周期规则:

  • 将所需的删除日期存储在对象的 标签 中,以确定您希望何时删除对象
  • 每天触发一次 AWS Lambda 函数,这将:
    • 列出存储桶的内容(或存储桶内的路径)
    • 检查每个对象标签上的日期
    • 如果已过期,则删除对象

一旦传递了几千个对象,此过程可能效率不高,因为您需要为每个对象调用 GetObjectTagging(不幸的是,列出存储桶不提供标签)。保留对象名称和所需到期日期的数据库,然后让 Lambda 函数查询数据库以确定要删除的对象会更有价值。