【问题标题】:Remove S3 obsolete lifecycle rule删除 S3 过时的生命周期规则
【发布时间】:2021-12-25 04:16:03
【问题描述】:

S3 使用当前场景

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

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

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

【问题讨论】:

  • 不,没有。但是,可能有更好的方法来实现您的目标。请编辑您的问题并告诉我们更多关于您想要实现的什么(而不是如何您想要实现它)。您是否希望特定对象在给定时间段后消失?这些时间段是按天还是按小时设置的?什么决定了文件应该“过期”的持续时间?
  • @JohnRotenstein 问题已编辑。

标签: node.js amazon-web-services amazon-s3 aws-sdk


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2020-07-28
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多