Axe*_*xel 5 amazon-s3 amazon-web-services aws-cli
我们有一个包含超过 500,000 个对象的存储桶。
我被分配了一份工作,我必须删除具有特定前缀的文件。存储桶中有大约 300,000 个具有给定前缀的文件。
例如, 如果有 3 个文件
abc_1file.txt
abc_2file.txt
abc_1newfile.txt
Run Code Online (Sandbox Code Playgroud)
我只需要删除带有 abc_1 前缀的文件。我在 AWS 文档中没有找到太多与此相关的内容。
关于如何自动执行此操作的任何建议?
Pie*_*e D 22
作为对 @sippybear 优秀答案的补充,如果有人有一个包含一万亿个对象的存储桶,并且想要删除的文件的模式包括“父目录”,我会建议以下内容,例如'my/path/to/topdir/abc_1*'
:
aws s3 rm --dryrun --recursive --exclude '*' --include 'abc_1*' s3://mybucket/my/path/to/topdir/
Run Code Online (Sandbox Code Playgroud)
--dryrun
,即使你立即打断它 ( ctrl-C
);拼写错误和其他事故的发生以及删除存储桶中大量文件时的错误可能会非常令人遗憾(即使您有正确的备份)...一旦您对所看到的即将删除的内容感到满意,请删除--dryrun
.
sip*_*ear 10
您可以使用带有和参数的aws s3 rm
命令来指定要删除的文件的模式。--include
--exclude
所以在你的情况下,命令是:
aws s3 rm s3://bucket/ --recursive --exclude "*" --include "abc_1*"
这将删除存储桶中与“abc_1*”模式匹配的所有文件。
这些参数的行为记录在此处
这些说明假设您已下载、安装和配置AWS CLI 工具
归档时间: |
|
查看次数: |
9748 次 |
最近记录: |