AWS S3将物体移入冰川

时间:2020-08-27 01:29:46

标签: python amazon-web-services amazon-s3 s3-lifecycle-policy

初始状态:

我有两个S3存储桶,分别称为input_bucketoutput_bucket。每秒,我的input_bucket充满了csv_files。

我的要求: 我想将input_bucket(STANDARD_CLASS)中存在的csv_files移至output_bucker(Glacier storage class)

注意:我要移动csv_files(从创建之日起40天)

请为此提出一些解决方案

1 个答案:

答案 0 :(得分:0)

有多种方法可以实现:

1使用复制简单且推荐

您无需编写任何代码即可实现。此解决方案会将在input_bucket中创建的文件复制到output_bucket,然后在40天后从input_bucket中删除它们。

例如

<LifecycleConfiguration>
  <Rule>
    <ID>Transition Rule</ID>
    <Status>Enabled</Status>
    <Expiration>
      <Days>40</Days>
      <StorageClass>S3 Glacier</StorageClass>
    </Expiration>
  </Rule>
</LifecycleConfiguration>

2使用自定义应用程序 (不推荐)

启用S3触发器,然后使用Lambda函数创建启用TTL 40天的Dynamodb项目。 Dynamodb项目应包含S3对象路径。您还需要启用Dynamodb stream来触发Lambda函数,该函数会将对象从input_bucket复制到output_bucket,然后从源中将其删除。此解决方案价格昂贵,不建议使用。