Python - 从特定文件夹/子文件夹AWS S3下载数据

时间:2018-04-30 18:59:24

标签: python-3.x amazon-web-services amazon-s3 boto3

我正在尝试从AWS S3中提取数据。下面的代码可以帮助我下载文件。但是,如果存储桶有多个文件夹,则下面的代码会尝试提取整个存储桶而不是特定的文件夹/子文件夹。如何修改以下代码以仅提取文件夹/子文件夹中的特定文件

from boto3.session import Session
import boto3

ACCESS_KEY = 'ABC'
SECRET_KEY = 'XYZ'

session = Session(aws_access_key_id=ACCESS_KEY,
          aws_secret_access_key=SECRET_KEY)
s3 = session.resource('s3')
your_bucket = s3.Bucket('bucket_name')

for s3_file in your_bucket.objects.all():
    print(s3_file.key)

your_bucket.download_file('rawdata.xlsx' ,/Users/user/Desktop/folder/')

感谢。

1 个答案:

答案 0 :(得分:1)

要下载特定文件,您应该创建要下载的文件列表。然后,您可以检查文件是否匹配,然后下载。

files_to_downloaded = ["folder1/key.png", "folder2/other.png", "folderRandom/Randomkey.png"]
for fileObject in bucket.objects.all():
    file_name = str(fileObject.key)
    if file_name in files_to_downloaded:
        bucket.download_file(file_name, 'destination_path')