因此,当前在S3存储桶中,我存储了从webpack输出的javascript捆绑文件。这是一个示例文件夹结构
- s3_bucket_name
- javascript_bundle
- 2018_10_11
- 2018_10_09
- 2018_10_08
- 2018_10_07
- 2018_10_06
- 2018_10_05
所以我想清理文件夹,只保存5个文件夹。 (文件夹名称为部署日期)我无法按日期进行清理,因为我们可能会长时间不部署。 因此,我无法使用生命周期方法。
例如,如果我将到期日期设置为30天,如果我们没有部署30天,S3将自动删除所有文件夹,然后所有javascript文件都将被删除并且该站点将无法正常工作。 / p>
是否可以使用AWS CLI完成此操作?
要求是
例如,给定以下文件夹,我们要删除30天以上的文件夹,同时保留至少5个文件夹
- 2018_10_11
- 2018_09_09
- 2018_08_08
- 2018_07_07
- 2018_06_06
- 2018_05_05
唯一将被删除的是2018_05_05
。
我没有看到通过aws s3 rm
命令执行此操作的任何选项。
答案 0 :(得分:1)
您可以指定要删除的文件夹,但是AWS CLI中没有选项来指定您不想想要删除的文件夹。
最好通过编写脚本(例如在Python中)来解决此要求,该脚本可以检索存储桶内容列表,然后应用一些逻辑来删除对象。
在Python中,使用boto3
,list_objects_v2()
可以返回CommonPrefixes
的列表,该列表实际上是文件夹列表。然后,您可以确定应保留哪些文件夹,然后删除所有其他路径中的对象。