如何批量删除Amazon S3存储桶中数百个指定文件?
批量删除S3桶中指定图片的简易方法
嘿,作为刚接触S3的新手,遇到批量删指定文件的需求完全不用慌,我给你整理几个最省心的办法,不用复杂的代码或者XML:
方法1:用AWS CLI + 文件导入(最推荐,高效易操作)
这个方法支持通过文本文件导入要删除的文件名,完全不用手动一个个敲命令:
准备待删除文件列表
新建一个文本文件(比如叫delete-list.txt),每行写一个要删除的对象完整路径(也就是S3里的Key,比如vacation/2023/beach.jpg,注意不要加开头的斜杠)。生成批量删除的JSON配置
如果你不想手动写JSON,可以用简单的命令把文本文件转成S3要求的格式:# 把文本转成JSON片段 awk '{print "{\"Key\": \""$0"\"},"}' delete-list.txt | head -n -1 > temp.txt # 拼接成完整的delete.json echo '{"Objects": [' > delete.json cat temp.txt >> delete.json echo '], "Quiet": true}' >> delete.json生成的
delete.json格式大概是这样:{ "Objects": [ {"Key": "vacation/2023/beach.jpg"}, {"Key": "vacation/2023/mountain.jpg"} ], "Quiet": true }执行批量删除
运行AWS CLI命令完成删除:aws s3api delete-objects --bucket your-bucket-name --delete file://delete.json替换
your-bucket-name成你的存储桶名称就行。
方法2:S3控制台批量操作(纯图形界面,不用敲命令)
如果更习惯用GUI,S3的批量操作功能也支持文件导入:
- 准备一个CSV文件,每行只写要删除的对象Key(和上面的文本文件内容一样,只是后缀是
.csv)。 - 打开S3控制台,进入你的存储桶,点击顶部的批量操作按钮,选择创建任务。
- 任务类型选删除对象,然后上传你准备好的CSV文件,跟着向导一步步确认,就能自动批量删除指定文件了。
方法3:控制台手动多选(适合少量文件,几百个的话不推荐)
如果文件数量没那么多,也可以直接在控制台操作:
- 进入存储桶,用搜索框筛选出要删除的文件(比如按前缀搜索)。
- 按住
Ctrl(Windows)或Cmd(Mac)多选,或者按住Shift选连续的文件,然后点击顶部的删除按钮,确认后即可删除。
对你问题的直接解答:
- 是否支持文件导入?当然支持!上面的方法1和方法2都可以通过文本/CSV文件导入要删除的列表,不用一个个输入。
- 是否需要编写XML?完全不需要!现在S3批量删除用JSON格式更方便,甚至用控制台批量操作连代码都不用写。
小提醒:
- 确认你输入的对象Key完全正确,S3的路径是区分大小写的哦!
- 确保你的AWS账号有
s3:DeleteObject的权限,不然会操作失败。 - 可以先挑几个文件测试一下命令或任务,避免误删重要文件。
内容的提问来源于stack exchange,提问作者F Simmons
相关产品推荐
相关产品推荐

