簡體   English   中英

Python 3 + Boto3 + S3:下載文件夾中的所有文件

[英]Python 3 + boto3 + s3: download all files in a folder

我正在編寫Python 3.4 + boto3腳本來下載s3存儲桶/文件夾中的所有文件。 我使用的是s3.resource而不是客戶端,因為此EMR群集已具有密鑰憑據。

這適用於下載單個文件:

s3 = boto3.resource('s3')
bucket = "my-bucket"
file = "some_file.zip"
filepath = "some_folder/some_file.zip"


def DL(bucket, key, local_name):
    s3.Bucket(bucket).download_file(key, local_name)

DL(bucket, filepath, file)

但是我需要將所有文件下載到存儲桶中的某個文件夾中,其格式如下:

some_file_1.zip
some_file_2.zip
some_file_3.zip, etc.

它應該很簡單,但是我想我們不能使用通配符或模式匹配,例如“ some_file *”。 所以我必須遍歷並找到每個文件名?

並為每個文件名稱調用download_file?

您可以使用listobjectsv2並傳遞前綴以僅獲取s3“文件夾”中的鍵。 現在,您可以使用for循環瀏覽所有這些鍵並全部下載。 如果需要進一步過濾,請使用條件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM