Using Boto3 Python SDK,我能够使用该方法下载文件bucket.download_file()
有没有办法下载整个文件夹?
Answer recommended by AWS /collectives/aws
Collective
又快又脏,但它有效:
import boto3
import os
def downloadDirectoryFroms3(bucketName, remoteDirectoryName):
s3_resource = boto3.resource('s3')
bucket = s3_resource.Bucket(bucketName)
for obj in bucket.objects.filter(Prefix = remoteDirectoryName):
if not os.path.exists(os.path.dirname(obj.key)):
os.makedirs(os.path.dirname(obj.key))
bucket.download_file(obj.key, obj.key) # save to same path
假设您要从 s3 下载目录 foo/bar,那么 for 循环将迭代路径以 Prefix=foo/bar 开头的所有文件。