初始状态:
我有两个称为input_bucket
和的 S3 存储桶output_bucket
。每一秒,我都input_bucket
充满了 csv_files。
我的要求:
我想将存在的 csv_filesinput_bucket(STANDARD_CLASS)
移至output_bucker(Glacier storage class)
注意:我想移动 csv_files(从创建之日起 40 天)
请为此提出一些解决方案
初始状态:
我有两个称为input_bucket
和的 S3 存储桶output_bucket
。每一秒,我都input_bucket
充满了 csv_files。
我的要求:
我想将存在的 csv_filesinput_bucket(STANDARD_CLASS)
移至output_bucker(Glacier storage class)
注意:我想移动 csv_files(从创建之日起 40 天)
请为此提出一些解决方案
有多种方法可以实现:
1 使用复制(简单和推荐)
您无需编写任何代码即可实现它。此解决方案将复制创建的文件input_bucket
,然后在 40 天后output_bucket
将其删除。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 流以触发 Lambda 函数,该函数将从input_bucket
中复制对象output_bucket
,然后将其从源中删除。此解决方案价格昂贵,不推荐使用。