Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 演示如何使用boto3从S3存储桶中删除一个或多个特定密钥_Python_Amazon Web Services_Amazon S3_Boto3 - Fatal编程技术网

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

Python 演示如何使用boto3从S3存储桶中删除一个或多个特定密钥,python,amazon-web-services,amazon-s3,boto3,Python,Amazon Web Services,Amazon S3,Boto3,这允许从S3存储桶中删除密钥列表。请举例说明如何将其用于: 要删除的单个密钥 要删除的多个键的列表 谢谢 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

这允许从S3存储桶中删除密钥列表。请举例说明如何将其用于:

  • 要删除的单个密钥
  • 要删除的多个键的列表
  • 谢谢

    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
    

    非常感谢你的解释,是你的暗示解决了这个问题。在术语上纠缠不清;键与s3 bucket键相同,但也与python字典中的键相同。键:value.;-)即使运行了上面的代码,并收到状态代码200,我仍然可以从s3下载该文件,因此它不起作用。这是我见过的最荒谬和可笑的API。这个图书馆怎么了?@Granitosaurus你的评论没有效果。如果你有改进Boto3的建议,我建议在这里提交