Download objè S3 Avèk Python ak Boto 3

Nan pòs sa a nou montre egzanp ki jan yo telechaje dosye ak imaj ki sòti nan yon bokit aws S3 lè l sèvi avèk Python ak Boto 3 bibliyotèk.

Boto se yon AWS SDK pou Piton. Li bay fasil yo sèvi ak fonksyon ki ka kominike avèk sèvis AWS tankou EC2 ak S3 bokit.



Dowload S3 Objè Avèk Piton ak Boto 3

Nan egzanp sa a, nou telechaje yon dosye ki soti nan yon bokit S3 espesifye.


Premyèman nou dwe kreye yon kliyan S3 lè l sèvi avèk 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 metòd pran twa paramèt:


Premye paramèt la se non bokit la nan S3. Dezyèm lan se dosye a (non ak ekstansyon) nou vle telechaje ak paramèt nan twazyèm se non an nan dosye a nou vle sove kòm.



Download Tout objè S3 nan yon bokit espesifye

Nan egzanp sa a, nou telechaje tout objè nan yon bokit S3 espesifye.

Brek kòd la sipoze dosye yo dirèkteman nan rasin bokit la epi yo pa nan yon sub-katab.

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)


Telechaje tout objè nan yon bokit Sub-Dosye S3

Kòd sa a montre kouman telechaje dosye ki nan yon sub-katab nan yon bokit S3.


Sipoze dosye yo nan bokit ak kote sa yo:

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)

Referans

Boto 3 Dokimantasyon