You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用s3cmd删除占用空间产生费用的失败分段上传任务?

如何用s3cmd删除AWS S3中所有失败的分段上传任务

别担心,完全可以批量删除这些未完成的分段上传任务,以此停止产生额外的存储空间费用——毕竟这些失败任务的分段文件一直占用着S3空间,确实会持续扣费。下面是具体的操作步骤:

步骤1:导出所有分段上传任务到本地文件

首先,把所有未完成的分段上传任务列表导出到一个文本文件里,方便后续处理:

s3cmd multipart s3://my.bucket.name/ > multipart_uploads.txt

记得把my.bucket.name替换成你实际的存储桶名称。

步骤2:生成批量删除命令

接下来,我们需要从导出的文件中提取每个任务的关键信息(存储桶内的对象路径、上传ID),并生成对应的删除命令。

打开multipart_uploads.txt看一下每行的结构,比如你提供的示例行:

... 2019-09-21T02:57:09.000Z s3://my.bucket.name/server1/home/jbloggs/bigfile.tar.gz wsmw7IGcBvy.yssRikscDwxozV0_7iU_YXsgwqR3nQxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkPeUiWMp3G6NMWOemaIcWjYA5XaGaiqz09WJKnQRzJIAtQ

这里第4个字段是对象的完整S3路径,第5个字段是上传ID。我们可以用awk命令来提取这些信息并生成删除脚本:

awk '{print "s3cmd abortmpu " $4 " " $5}' multipart_uploads.txt > delete_mpus.sh

注意事项:

  • 如果你的任务列表行结构和示例不同,需要调整awk中的字段序号(比如$4、$5可能要改成$3、$4之类的,根据实际输出调整)。
  • 先运行awk '{print "s3cmd abortmpu " $4 " " $5}' multipart_uploads.txt查看生成的命令是否正确,确认没问题再写入脚本文件。

步骤3:执行批量删除

给生成的脚本添加执行权限,然后运行它:

chmod +x delete_mpus.sh && ./delete_mpus.sh

更快捷的管道方式(无需生成文件)

如果你不想生成中间文件,可以直接用管道一次性完成:

s3cmd multipart s3://my.bucket.name/ | awk '{print "s3cmd abortmpu " $4 " " $5}' | bash

同样,建议先去掉最后的| bash,预览命令是否正确后再执行。

额外提醒

  • 确保你的s3cmd配置有足够的权限:需要拥有s3:AbortMultipartUpload权限,否则删除操作会失败。
  • 如果任务数量非常多,可能会触发AWS的API请求限流。可以在脚本中加入短暂延迟(比如在每个删除命令后加sleep 0.1),或者分批次执行脚本。
  • 作为备选,你也可以用AWS CLI来完成这个操作,比如用aws s3api list-multipart-uploads列出任务,结合jq解析后用aws s3api abort-multipart-upload删除,但如果你更习惯s3cmd,上面的方法就足够了。

内容的提问来源于stack exchange,提问作者Paul Littlefield

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 09:57:36