根据自定义规则从文件名中提取的日期删除旧文件



我正在尝试根据以下规则找到自动删除 s3 上旧 SQL 备份文件的最佳方法:

  1. 保留过去 7 天的所有备份
  2. 保留过去 6 个月每天的最后一次备份
  3. 保留过去 2 年每周的最后一次备份
  4. 保留每个月的最后备份,用于超过2年的文件。

我的文件名包含备份日期时间,如下所示XX_backup_2016_12_09_150003_4066809.bak

你有什么建议?AWS Lambda 还是什么?

考虑将 S3 生命周期规则与对象标记结合使用。

您可以使用 S3 事件为每个 PutObject 触发一个 lambda。您的 lambda 可以根据您概述的规则在 S3 对象上创建标签。文件名将从 S3 事件输入到 lambda。

那是:

保留过去 7 天
  1. 的所有备份(默认标记保留 7 天(
  2. 保留过去 6 个月
  3. 每天的上次备份(标记为 6 个月保留期(
  4. 保留过去 2 年
  5. 每周的最后一次备份(标记为 2 年保留期(
  6. 保留每月超过 2 年的最后一个备份文件(标记为 X 保留(

lambda 可以处理边缘情况,以确定特定文件是否需要 6 个月和 2 年。如果没有其他标记可以应用于 7 天保留期,则可以使用默认标记。

然后,可以根据标签创建和应用具有过期的生命周期规则。

最新更新