如何在一段时间后从另一个S3 Bucket中移动文件?

时间:2017-03-10 13:24:37

标签: amazon-web-services amazon-s3 lambda amazon-glacier

如何在一段时间后从另一个S3 Bucket中移动文件?

我检查了这个帖子:Is it possible to automatically move objects from an S3 bucket to another one after some time?

但我不想使用Glacier选项,因为我们的文件非常小。还有其他选择吗?

编辑:

要求是将文件标记为无效(有一个元数据表,我们为此更改属性),然后将其删除。 (无效意味着=例如某些日期更早......可能是30天)。之后,我们说120天之后应该删除这些无效文件。

为什么要移动文件?

  1. 按业务要求分开(无效与有效文件) - 不必再次检查此属性(无论是无效还是有效)
  2. 如果我们想要迭代有效文件,
  3. 要迭代的文件越少
  4. 重要:新桶的'S3 PUT事件'可以调用一个 lambda函数:这个lambda函数可以做其他的东西。喜欢 在我们的dynamoDB表中更改属性(有效/无效/已删除)。
  5. 是的,我们也可以放弃使用移动文件。但是我没有看到在延迟30天后如何执行lambda函数的方法。

    祝你好运

1 个答案:

答案 0 :(得分:0)

可以schedule lambda function execution使用CloudWatch scheduled events

设计应包括:

  • Lambda函数的实现,该函数可识别并移动S3中的所需对象
  • 具有所需计划的计划表达规则。 Cloudwatch支持crontab之类的aws events put-rule --schedule-expression "cron(0 0 1 * ? *)" --name ObjectExpirationRule表达式
  • 将规则分配给lambda aws events put-targets --rule ObjectExpirationRule --targets '[{"1", "arn:aws:lambda:us-east-1:123456789012:function:MyLambdaFunction"}]'