Спампаваць аб'екты S3 з Python і Boto 3

У гэтым пасце мы паказваем прыклады таго, як загружаць файлы і выявы з вядра aws S3 з дапамогай бібліятэкі Python і Boto 3.

Boto - гэта AWS SDK для Python. Ён забяспечвае простыя ў выкарыстанні функцыі, якія могуць узаемадзейнічаць з такімі службамі AWS, як сегменты EC2 і S3.



Загрузіце аб'екты S3 з Python і Boto 3

У наступным прыкладзе мы загружаем адзін файл з указанага сегмента S3.


Спачатку трэба стварыць кліент S3, выкарыстоўваючы boto3.client(s3).

import boto3 BUCKET_NAME = 'my_s3_bucket' BUCKET_FILE_NAME = 'my_file.json' LOCAL_FILE_NAME = 'downloaded.json' def download_s3_file():
s3 = boto3.client('s3')
s3.download_file(BUCKET_NAME, BUCKET_FILE_NAME, LOCAL_FILE_NAME)

download_file метад прымае тры параметры:


Першы параметр - гэта імя сегмента ў S3. Другі - гэта файл (імя і пашырэнне), які мы хочам загрузіць, а трэці параметр - імя файла, які мы хочам захаваць.





Загрузіце ўсе аб'екты S3 у вызначаны сегмент

У наступным прыкладзе мы загружаем усе аб'екты ў вызначаным сегменце S3.

Фрагмент кода мяркуе, што файлы знаходзяцца непасрэдна ў корані вядра, а не ў падтэчцы.

import boto3 def download_all_files():
#initiate s3 resource
s3 = boto3.resource('s3')
# select bucket
my_bucket = s3.Bucket('bucket_name')
# download file into current directory
for s3_object in my_bucket.objects.all():
filename = s3_object.key
my_bucket.download_file(s3_object.key, filename)


Загрузіце ўсе аб'екты ў падкаталог S3 Bucket

У наступным кодзе паказана, як загружаць файлы, якія знаходзяцца ў падтэчцы вядра S3.


Дапусцім, файлы знаходзяцца ў наступным сегменце і ў наступным месцы:

BUCKET_NAME = 'images'

PATH = pets/cats/

import boto3 import os def download_all_objects_in_folder():
s3_resource = boto3.resource('s3')
my_bucket = s3_resource.Bucket('images')
objects = my_bucket.objects.filter(Prefix='pets/cats/')
for obj in objects:
path, filename = os.path.split(obj.key)
my_bucket.download_file(obj.key, filename)

Спіс літаратуры

Бота 3 Дакументацыя