documentation在谈到如何删除文件夹的内容时,有点模棱两可。如果您看一下它是如何为 boto3 完成的,那么在 boto3 前提部分中没有定义 key ,它仅在 boto2 示例中定义。
删除文件夹内容的灵活(超过 1000 个文件)成语是什么?
最佳答案
我认为您也无法在 boto2 中删除单个习语中的 1000 多个项目。但是,从 boto3 的角度来看,您可以尝试以下操作:
s3 = boto3.resource('s3')
bucket = s3.Bucket('bucket-name')
bucket.objects.filter(Prefix="path/to/dir").delete()
以上内容已经过测试并且可以正常工作
>>> import boto3
>>> s3 = boto3.resource('s3')
>>> b = s3.Bucket('MY_BUCKET_NAME')
>>> b.objects.filter(Prefix="test/stuff")
s3.Bucket.objectsCollection(s3.Bucket(name='MY_BUCKET_NAME'), s3.ObjectSummary)
>>> list(b.objects.filter(Prefix="test/stuff"))
[s3.ObjectSummary(bucket_name='MY_BUCKET_NAME', key=u'test/stuff/new')]
>>> b.objects.filter(Prefix="test/stuff").delete()
[{u'Deleted': [{u'Key': 'test/stuff/new'}], 'ResponseMetadata': {'HTTPStatusCode': 200, 'RetryAttempts': 0, 'HostId': 'BASE64_ID_1', 'RequestId': 'REQ_ID', 'HTTPHeaders': {'x-amz-id-2': 'BASE64_ID_2', 'server': 'AmazonS3', 'transfer-encoding': 'chunked', 'connection': 'close', 'x-amz-request-id': 'REQ_ID', 'date': 'Fri, 12 May 2017 21:21:47 GMT', 'content-type': 'application/xml'}}}]
>>>
关于python - 如何使用 boto3 删除 AWS 存储桶中的文件夹及其内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43944190/