如何使用AWS CLI永久删除S3中的对象?
AWS CLI实现S3对象永久删除(跳过删除标记)
当S3桶开启版本控制时,常规的aws s3 rm命令只会给对象添加删除标记(Delete Marker),并不会真正删除对象的实际版本。通过AWS CLI可以实现永久删除,具体操作如下:
1. 查看对象版本与删除标记
先确认目标对象的版本ID或删除标记信息,执行命令:
aws s3api list-object-versions --bucket your-bucket-name
该命令会返回桶内所有对象的版本记录、对应版本ID,以及已存在的删除标记。
2. 永久删除单个对象版本
指定对象的Key和版本ID,直接删除对应版本:
aws s3api delete-object --bucket your-bucket-name --key "target-object-key" --version-id specific-version-id
注意:必须携带
--version-id参数,否则只会生成删除标记而非永久删除。
3. 批量永久删除多个对象
准备一个JSON配置文件(例如delete-config.json),列出要删除的对象及对应版本ID:
{ "Objects": [ {"Key": "object-1.txt", "VersionId": "v1.xxxxxx"}, {"Key": "object-2.jpg", "VersionId": "v2.xxxxxx"} ], "Quiet": false }
执行批量删除命令:
aws s3api delete-objects --bucket your-bucket-name --delete file://delete-config.json
Quiet: false会返回每个对象的删除结果;设为true则不返回详情- 若要永久删除已有的删除标记,只需将删除标记的VersionID填入JSON即可
4. 开启MFA删除的场景
如果桶启用了MFA删除,删除时需额外携带MFA认证信息:
aws s3api delete-object --bucket your-bucket-name --key "target-object-key" --version-id specific-version-id --mfa "arn:aws:iam::123456789012:mfa/your-mfa-device 123456"
替换其中的MFA设备ARN和验证码即可。
内容的提问来源于stack exchange,提问作者Asker
相关产品推荐
相关产品推荐

