Sam*_*ri 3 python amazon-s3 amazon-web-services boto3
关于如何删除文件夹的内容,文档有点含糊。如果您看一下如何对boto3进行操作,则在boto3之前的部分中未定义密钥,而仅在boto2示例中定义了密钥。
什么是删除文件夹内容的灵活(超过1000个文件)惯用语?
hjp*_*r92 10
我也不认为您可以在boto2的单个习惯中删除1000多个项目。但是,从boto3角度来看,您可以尝试以下操作:
s3 = boto3.resource('s3')
bucket = s3.Bucket('bucket-name')
bucket.objects.filter(Prefix="path/to/dir").delete()
Run Code Online (Sandbox Code Playgroud)
上面已经过测试并且可以正常工作
>>> 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'}}}]
>>>
Run Code Online (Sandbox Code Playgroud)