এই পোস্টে আমরা পাইথন এবং বোটো 3 লাইব্রেরি ব্যবহার করে aws S3 বাকেট থেকে ফাইল এবং ছবি ডাউনলোড করার উদাহরণ দেখাই৷
Boto পাইথনের জন্য একটি AWS SDK। এটি ব্যবহার করা সহজ ফাংশন প্রদান করে যা AWS পরিষেবা যেমন EC2 এবং S3 বালতিগুলির সাথে ইন্টারঅ্যাক্ট করতে পারে৷
পাইথন এবং বোটো 3 দিয়ে S3 অবজেক্ট ডাউনলোড করুন
নিম্নলিখিত উদাহরণে, আমরা একটি নির্দিষ্ট S3 বালতি থেকে একটি ফাইল ডাউনলোড করি৷
৷
প্রথমে আমাদের boto3.client(s3)
ব্যবহার করে একটি 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 বালতিতে সমস্ত অবজেক্ট ডাউনলোড করুন
নিচের কোডটি দেখায় যে 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 ডকুমেন্টেশন