初始状态:
我有两个S3存储桶,分别称为input_bucket
和output_bucket
。每秒,我的input_bucket
充满了csv_files。
我的要求:
我想将input_bucket(STANDARD_CLASS)
中存在的csv_files移至output_bucker(Glacier storage class)
注意:我要移动csv_files(从创建之日起40天)
请为此提出一些解决方案
答案 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
,然后从源中将其删除。此解决方案价格昂贵,不建议使用。