使用删除标记删除 S3 存储桶版本

问题描述 投票:0回答:2

我正在尝试删除带有版本的 s3 存储桶并删除标记。 我无法从控制台删除它们,并且我在这个问题上停留了一段时间。

我也尝试过运行一些Python脚本,但仍然没有任何变化。

amazon-web-services amazon-s3 scripting storage bucket
2个回答
0
投票

在 Amazon S3 管理控制台中,您将看到:

Versions: Hide / Show

单击

Show
将显示对象的所有版本,包括删除标记。然后您可以选择版本并删除标记并删除它们。


0
投票

以下 Python 代码应该可以实现您想要的功能:

bucket = "my_s3_bucket_1234aefa"
file_to_delete = "file_i_want_to_delete.png"
results = []
response = s3_client.list_object_versions(
    Bucket=bucket,
    Prefix=file_to_delete,
)
for k in ['Versions', 'DeleteMarkers']:
    if k in response:
        k_response = response[k]
        to_delete = [r['VersionId'] for r in k_response if r['Key'] == file_to_delete]
        results.extend(to_delete)
for version in results:
    s3_client.delete_object(Bucket=bucket, Key=file_to_delete, VersionId=version)
© www.soinside.com 2019 - 2024. All rights reserved.