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

咨询如何彻底删除Amazon S3存储桶中包含所有版本的对象

Amazon S3 版本化存储桶对象彻底删除解决方案

控制台操作步骤

  • 进入对应S3存储桶的「对象」选项卡,勾选页面上方的显示版本开关,此时会列出该存储桶内所有对象的历史版本、删除标记条目
  • 删除按钮呈灰色的核心原因是未选中所有关联条目:需要将目标对象对应的全部历史版本条目、全部删除标记条目同时勾选,删除按钮会自动变为可点击状态
  • 点击删除后,在确认页面输入permanently delete完成确认,操作完成后刷新页面,即使开启显示版本也无法检索到该对象的任何残留记录

CLI 操作解决方案

CLI操作失败通常是未指定对象版本ID,或缺少对应权限,按以下步骤操作即可:

  • 首先获取目标对象的所有版本ID、删除标记ID,执行命令:
    aws s3api list-object-versions --bucket 替换为你的桶名 --prefix 替换为目标对象的完整路径
  • 返回结果中分别提取Versions节点下的所有VersionId,以及DeleteMarkers节点下的所有VersionId
  • 针对每个ID单独执行删除操作:
    aws s3api delete-object --bucket 替换为你的桶名 --key 替换为目标对象的完整路径 --version-id 替换为对应版本ID
  • 也可以使用批量命令一键删除所有版本和删除标记:
# 批量删除所有历史版本
aws s3api list-object-versions --bucket 替换为你的桶名 --prefix 替换为目标对象的完整路径 --query 'Versions[].VersionId' --output text | xargs -I {} aws s3api delete-object --bucket 替换为你的桶名 --key 替换为目标对象的完整路径 --version-id {}

# 批量删除所有删除标记
aws s3api list-object-versions --bucket 替换为你的桶名 --prefix 替换为目标对象的完整路径 --query 'DeleteMarkers[].VersionId' --output text | xargs -I {} aws s3api delete-object --bucket 替换为你的桶名 --key 替换为目标对象的完整路径 --version-id {}

常见操作失败排查

  • 检查存储桶是否开启了对象锁定功能:如果开启了合规模式的对象锁定,锁定周期内的对象版本无法被任何人删除,需等锁定周期到期后再操作
  • 检查操作账号权限:确认账号具备s3:DeleteObjectVersion权限,普通的s3:DeleteObject权限仅能新增删除标记,无法删除历史版本
  • 检查存储桶是否配置了MFA删除:如果开启了MFA删除,删除版本时需要在请求中附带MFA设备的序列号和动态验证码才能完成操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:27:04