删除 S3 过时的生命周期规则
Remove S3 obsolete lifecycle rule
S3使用当前场景
- 存储的一般文件没有过期日期。
- 存档文件:保存在存档文件夹(文件夹的有效期设置)中,有效期为30天。
现在可以选择将某些存档文件的保留日期增加 n 天。
示例:存档文件 1 - 保留天数增加到 5 天。所以,现在我必须将文件移出存档文件夹并为 file-1 创建一个单独的到期日期。
但问题是,当 file-1 从 s3 中删除时,其关联的生命周期仍然存在。
所以,我想删除未使用的生命周期。
有什么方法可以识别过时的生命周期吗?
我建议不要使用 S3 生命周期规则:
- 将所需的删除日期存储在对象的 标签 中,以确定您希望何时删除对象
- 每天触发一次 AWS Lambda 函数,这将:
- 列出存储桶的内容(或存储桶内的路径)
- 检查每个对象标签上的日期
- 如果已过期,则删除对象
一旦传递了几千个对象,此过程可能效率不高,因为您需要为每个对象调用 GetObjectTagging
(不幸的是,列出存储桶不提供标签)。保留对象名称和所需到期日期的数据库,然后让 Lambda 函数查询数据库以确定要删除的对象会更有价值。
S3使用当前场景
- 存储的一般文件没有过期日期。
- 存档文件:保存在存档文件夹(文件夹的有效期设置)中,有效期为30天。
现在可以选择将某些存档文件的保留日期增加 n 天。 示例:存档文件 1 - 保留天数增加到 5 天。所以,现在我必须将文件移出存档文件夹并为 file-1 创建一个单独的到期日期。 但问题是,当 file-1 从 s3 中删除时,其关联的生命周期仍然存在。
所以,我想删除未使用的生命周期。 有什么方法可以识别过时的生命周期吗?
我建议不要使用 S3 生命周期规则:
- 将所需的删除日期存储在对象的 标签 中,以确定您希望何时删除对象
- 每天触发一次 AWS Lambda 函数,这将:
- 列出存储桶的内容(或存储桶内的路径)
- 检查每个对象标签上的日期
- 如果已过期,则删除对象
一旦传递了几千个对象,此过程可能效率不高,因为您需要为每个对象调用 GetObjectTagging
(不幸的是,列出存储桶不提供标签)。保留对象名称和所需到期日期的数据库,然后让 Lambda 函数查询数据库以确定要删除的对象会更有价值。