如何通过Amazon S3控制台完全删除对象?"完全delete"这意味着当启用"显示版本;"时,对象完全消失并且不可见。我无法删除"显示版本"对象本身作为按钮,当它们被选中时是灰色的。我也试过通过CLI删除它们,但没有运气。
如果您启用了版本控制,删除对象只是添加该对象的另一个版本,即所谓的"删除标记"。如果要删除所有版本,包括删除标记,则需要枚举并删除对象的所有版本。例如,使用Python SDK,您可以在一些设置之后用一行枚举并删除它们:
import boto3
s3 = boto3.resource("s3")
bucket = s3.Bucket("-example-bucket-") # ARN without the 'arn:aws:s3:::' prefix
key = "example_object.txt"
object = bucket.object_versions.filter(Prefix=key)
versions = len(list(object.all()))
object.delete()
print(f"Deleted {versions} versions for '{key}'")
看起来您的IAM用户访问桶没有s3:DeleteObjectVersion权限。一旦您将此权限添加到您的策略中,您应该也可以删除版本。