我有一个具有以下架构的 S3 存储桶 -
Bucket
|__2019-08-23/
| |__SubFolder1
| |__Files
|
|__2019-08-22/
|__SubFolder2
我想删除所有超过 X 天的文件夹、子文件夹和文件。
那怎么办呢?我不确定 S3 LifeCycle 是否可以用于此目的?
还有当我做 -
aws s3 ls s3://bucket/
我明白了——
PRE 2019-08-23/
PRE 2019-08-22/
为什么我会在文件夹名称前面看到 PRE?
根据我尝试过的宝贵意见 -
$ Number=1;current_date=$(date +%Y-%m-%d);
past_date=$(date -d "$current_date - $Number days" +%Y-%m-%d);
aws s3api list-objects --bucket bucketname --query 'Contents[?LastModified<=$past_date ].{Key:Key,LastModified: LastModified}' --output text | xargs -I {} aws s3 rm bucketname/{}
我正在尝试删除所有 1 天前的文件。但我收到这个错误 -
Bad jmespath expression: Unknown token $:
Contents[?LastModified<=$past_date ].{Key:Key,LastModified: LastModified}
如何在lastmodified中传递变量?
如果您有更复杂的逻辑或命令行,您可以使用生命周期,一个 lambda 函数。
这是一个使用命令行的示例:
aws s3api list-objects --bucket your-bucket --query 'Contents[?LastModified>=`2019-01-01` ].{Key:Key,LastModified: LastModified}' --prefix "2019-01-01" --output text | xargs -I {} aws s3 rm s3://your-bucket/{}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句