演示如何使用 boto3 从 S3 存储桶中删除一个或多个特定密钥

Demonstrate how to delete a particular key or keys from an S3 bucket using boto3

boto3 function 允许从 S3 存储桶中删除密钥列表。请您演示如何使用它的示例:

  1. 要删除的单个密钥。
  2. 要删除的多个键的列表。

谢谢。

delete_objects(**kwargs)
This operation enables you to delete multiple objects from a bucket using a  single HTTP request. You may specify up to 1000 keys.

Request Syntax

response = bucket.delete_objects(
    Delete={
        'Objects': [
            {
                'Key': 'string',
                'VersionId': 'string'
            },
        ],
        'Quiet': True|False
    },
    MFA='string',
    RequestPayer='requester'
)

删除一个对象:

response = bucket.delete_objects(
    Delete={
        'Objects': [
            {
                'Key': 'myObjectKey'
            }
        ]
    }
)

删除两个对象:

response = bucket.delete_objects(
    Delete={
        'Objects': [
            {
                'Key': 'myFirstObjectKey'
            },
            {
                'Key': 'mySecondObjectKey'
            }
        ]
    }
)

我觉得文档(您链接的)使这一点非常明显。我很好奇您是如何发现文档令人困惑的。

答案:

# Delete key(s)
forDeletion = [{'Key':'IMG_20160807_150118.jpg'}, {'Key':'IMG_20160807_150124.jpg'}]
response = bucket.delete_objects(Delete={'Objects': forDeletion})

for elem in response.get('Deleted'):
    print(elem['Key']) 

输出:

IMG_20160807_150118.jpg
IMG_20160807_150124.jpg