![](/img/trans.png)
[英]How to download Amazon S3 files on to local machine in folder using python and boto3?
[英]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.