我正在尝试删除带有版本的 s3 存储桶并删除标记。 我无法从控制台删除它们,并且我在这个问题上停留了一段时间。
我也尝试过运行一些Python脚本,但仍然没有任何变化。
在 Amazon S3 管理控制台中,您将看到:
Versions: Hide / Show
单击
Show
将显示对象的所有版本,包括删除标记。然后您可以选择版本并删除标记并删除它们。
以下 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)