python - 如何使用 boto3 删除 AWS 存储桶中的文件夹及其内容

标签 python amazon-web-services amazon-s3 boto3

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/

相关文章:

python - 将 xls 转换为 csv 并创建/更新 InMemoryUploadedFile Django

amazon-web-services - 如何在cloudformation中添加自定义属性?

amazon-web-services - AWS Cloudwatch 指标警报在第一次后未触发

java - Tomcat上传文件到哪里?

python - 如何将图像文件数据集加载到 TensorFlow Jupyter Notebook

python - 无法提取所需的文本部分并丢弃某些元素中的其余部分

python - 使用mock在python unittest中模拟实例方法

java - 使用 Java 邮件 API 向新用户发送电子邮件通知

python - boto3 S3 对象解析

ruby-on-rails - 配置环境以在本地和Heroku上的Amazon上使用文件系统