কম্পিউটার টিউটোরিয়াল

পাইথন এবং Boto3 দিয়ে সহজে S3 অবজেক্ট রিট্রিভ করুন: ধাপে ধাপে গাইড

এই পোস্টে আমরা উদাহরণ দেখব কীভাবে পাইথন এবং Boto 3 লাইব্রেরি ব্যবহার করে AWS S3 বাকেট থেকে ফাইল এবং ইমেজ ডাউনলোড করা যায়।

Boto হল পাইথনের জন্য AWS SDK। এটি সহজে ব্যবহারযোগ্য ফাংশন প্রদান করে যা AWS সার্ভিসের সাথে ইন্টারঅ্যাক্ট করতে পারে যেমন EC2 এবং S3 বাকেট।

পাইথন এবং Boto 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)

রেফারেন্স

Boto 3 ডকুমেন্টেশন

  1. পাইথন এবং Tkinter দিয়ে কাউন্টডাউন টাইমার তৈরি

  2. Python Matplotlib-এ hue কালারম্যাপ এবং লেজেন্ড সহ 3D স্ক্যাটারপ্লট

  3. পাইথনে পান্ডাজ এবং ম্যাটপ্লটলিব দিয়ে ডেটা অ্যানালাইসিস এবং ভিজ্যুয়ালাইজেশন

  4. পাইথনে ফাইল অবজেক্ট: ফাইল পড়া, লিখা এবং ম্যানেজমেন্টের সম্পূর্ণ গাইড