Atsisiųskite S3 objektus su „Python“ ir „Boto 3“

Šiame įraše mes parodome pavyzdžius, kaip atsisiųsti failus ir vaizdus iš „aws S3“ kibiro naudojant „Python“ ir „Boto 3“ biblioteką.

„Boto“ yra „Python“ AWS SDK. Tai suteikia lengvai naudojamas funkcijas, kurios gali sąveikauti su AWS paslaugomis, tokiomis kaip EC2 ir S3.



Atsisiųskite S3 objektus naudodami „Python“ ir „Boto 3“

Šiame pavyzdyje mes atsisiunčiame vieną failą iš nurodyto S3 segmento.


Pirmiausia turime sukurti S3 klientą naudodami 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 metodas apima tris parametrus:


Pirmasis parametras yra S3 grupės pavadinimas. Antrasis yra failas (vardas ir plėtinys), kurį norime atsisiųsti, o trečiasis parametras yra failo, kurį norime išsaugoti, pavadinimas.



Atsisiųskite visus S3 objektus nurodytoje grupėje

Šiame pavyzdyje mes atsisiunčiame visus objektus nurodytame S3 segmente.

Kodo fragmente daroma prielaida, kad failai yra tiesiai segmento šaknyje, o ne antriniame aplanke.

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)


Atsisiųskite visus objektus aplanke S3

Šis kodas parodo, kaip atsisiųsti failus, esančius antriniame aplanke S3 segmente.


Tarkime, kad failai yra šiame segmente ir vietoje:

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)

Literatūra

„Boto 3“ dokumentacija