Hala niður S3 hlutum með Python og Boto 3

Í þessari færslu sýnum við dæmi um hvernig á að hlaða niður skrám og myndum úr aws S3 fötu með Python og Boto 3 bókasafni.

Boto er AWS SDK fyrir Python. Það býður upp á auðvelt í notkun aðgerðir sem geta haft samskipti við AWS þjónustu eins og EC2 og S3 fötu.



Dowload S3 hlutir með Python og Boto 3

Í eftirfarandi dæmi sækjum við eina skrá úr tilgreindum S3 fötu.


Fyrst verðum við að búa til S3 viðskiptavin með því að nota 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)

The download_file aðferð tekur þrjár breytur:


Fyrsta færibreytan er fötuheitið í S3. Annað er skráin (nafn og viðbót) sem við viljum hlaða niður og þriðja færibreytan er nafn skráarinnar sem við viljum vista sem.





Sæktu alla S3 hluti í tilgreindum fötu

Í eftirfarandi dæmi halum við niður öllum hlutum í tilgreindum S3 fötu.

Kóðabútinn gerir ráð fyrir að skrárnar séu beint í rót fötunnar en ekki í undirmöppu.

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)


Sæktu alla hluti í undirmöppu S3 fötu

Eftirfarandi kóði sýnir hvernig á að hlaða niður skrám sem eru í undirmöppu í S3 fötu.


Segjum að skrárnar séu í eftirfarandi fötu og staðsetningu:

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)

Tilvísanir

Boto 3 skjöl