Di vê posteyê de em mînakan nîşan dikin ka meriv çawa pel û wêneyan ji kozika aws S3 bi karanîna pirtûkxaneya Python û Boto 3 dakêşîne.
Boto ji bo Python SDK-a AWS e. Ew fonksiyonên karanîna hêsan peyda dike ku dikarin bi karûbarên AWS-ê re wek kunên EC2 û S3 têkiliyê deynin.
Di nimûneya jêrîn de, em pelê yek ji kumê diyarkirî S3 dakêşînin.
Pêşî divê em xerîdarek S3 bi karanîna boto3.client(s3)
çêbikin.
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
rêbaz sê pîvanan digire:
Parametera yekem di S3-ê de navê kunê ye. Ya duyemîn pel e (nav û pêvek) ku em dixwazin dakêşin û pîvana sêyemîn jî navê pelê ye ku em dixwazin wekî xwe hilanîn.
Di nimûneya jêrîn de, em hemî tiştan di kunek S3-ya diyarkirî de dakêşînin.
Snippet-kod destnîşan dike ku pelan rasterast di root kepçeyê de ne û ne di bin-peldankekê de ne.
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)
Koda jêrîn nîşan dide ku meriv pelên ku di pel-peldankek de di kunê S3 de ne, dakêşîne.
Bifikirin ku pel di kun û cîhê jêrîn de ne:
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)