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

Boto3 লাইব্রেরি এবং AWS Resource ব্যবহার করে S3 থেকে একটি অবজেক্ট ডিলিট করার পদ্ধতি


এই নিবন্ধে, আমরা দেখব কিভাবে Python-এর Boto3 লাইব্রেরি ব্যবহার করে S3 থেকে একটি অবজেক্ট ডিলিট করা যায়।

উদাহরণ − S3-এ Bucket_1/testfolder থেকে test.zip ডিলিট করা।

এই সমস্যাটি সমাধানের পদ্ধতি/এলগরিদম

ধাপ ১ − boto3 এবং botocore.exceptions ইমপোর্ট করুন এক্সেপশন হ্যান্ডলিং-এর জন্য।

ধাপ ২ − ফাংশনে s3_files_path প্যারামিটার হিসেবে ব্যবহার করুন।

ধাপ ৩ − যাচাই করুন যে s3_files_path AWS ফরম্যাটে s3://bucket_name/key হিসেবে পাস করা হয়েছে।

ধাপ ৪ − boto3 লাইব্রেরি ব্যবহার করে একটি AWS সেশন তৈরি করুন।

ধাপ ৫ − S3-এর জন্য একটি AWS রিসোর্স তৈরি করুন।

ধাপ ৬ − S3 পাথটি স্প্লিট করুন এবং রুট বাকেটের নাম এবং ডিলিট করার অবজেক্ট পাথ আলাদা করুন।

ধাপ ৭ − এখন delete_object ফাংশনটি ব্যবহার করুন এবং বাকেটের নাম এবং কী পাস করুন ডিলিট করার জন্য।

ধাপ ৮ − অবজেক্টটিও একটি ডিকশনারি যাতে ফাইলের সব বিবরণ থাকে। এখন প্রতিটি ফাইলের LastModified বিবরণ বের করুন এবং প্রদত্ত ডেটা টাইমস্ট্যাম্পের সাথে তুলনা করুন।

ধাপ ৯ − ফাইল ডিলিট করার সময় যদি কিছু ভুল হয় তবে জেনেরিক এক্সেপশন হ্যান্ডেল করুন।

উদাহরণ

S3 থেকে একটি অবজেক্ট ডিলিট করতে নিচের কোডটি ব্যবহার করুন −

import boto3
from botocore.exceptions import ClientError

def delete_objects_from_s3(s3_files_path):
    if 's3://' not in s3_files_path:
        raise Exception('Given path is not a valid s3 path.')
    session = boto3.session.Session(profile_name='saml')
    s3_resource = session.resource('s3')
    s3_tokens = s3_files_path.split('/')
    bucket_name = s3_tokens[2]
    object_path = ""
    filename = s3_tokens[len(s3_tokens) - 1]
    print('bucket_name: ' + bucket_name)
    if len(s3_tokens) > 4:
        for tokn in range(3, len(s3_tokens) - 1):
            object_path += s3_tokens[tokn] + "/"
        object_path += filename
    else:
        object_path += filename
    print('object: ' + object_path)
    try:
        result = s3_resource.meta.client.delete_object(Bucket=bucket_name, Key=object_path)
    except ClientError as e:
        raise Exception("boto3 client error in delete_objects_from_s3 function: " + e.__str__())
    except Exception as e:
        raise Exception("Unexpected error in delete_objects_from_s3 function of s3 helper: " + e.__str__())

# test.zip ডিলিট করুন
print(delete_objects_from_s3("s3://Bucket_1/testfolder/test.zip"))

আউটপুট

bucket_name: Bucket_1
object: testfolder/test.zip

  1. Boto3 লাইব্রেরি এবং AWS Resource ব্যবহার করে S3-এ একটি অবজেক্ট আপলোড করার পদ্ধতি

  2. Boto3 এবং AWS Client ব্যবহার করে S3-এ উপস্থিত বাকেটগুলির তালিকা পেতে পদ্ধতি

  3. পাইথনে ফাইল ডিলিট করার পদ্ধতি

  4. পাইথন ব্যবহার করে স্ট্রিং থেকে ক্যারেক্টার মুছে ফেলার পদ্ধতি