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

Boto3 এবং AWS Client ব্যবহার করে Waiters দিয়ে S3 বাকেট আছে কিনা চেক করা


এই আর্টিকেলে, আমরা দেখব কিভাবে Boto3 লাইব্রেরি এবং Waiter ফাংশনালিটি ব্যবহার করে একটি S3 বাকেট আছে কিনা যাচাই করা যায়। উদাহরণস্বরূপ, ওয়েটার ব্যবহার করে চেক করা যে Bucket_1 S3-এ আছে।

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

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

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

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

ধাপ ৪ − S3-এর জন্য AWS ক্লায়েন্ট তৈরি করা।

ধাপ ৫ − এখন get_waiter ফাংশন ব্যবহার করে bucket_exists-এর জন্য ওয়েট অবজেক্ট তৈরি করা।

ধাপ ৬ − এখন, wait অবজেক্ট ব্যবহার করে যাচাই করা যে বাকেটটি আছে কিনা। ডিফল্টভাবে, এটি প্রতি ৫ সেকেন্ড পরপর চেক করে যতক্ষণ না সফল স্টেট পাওয়া যায়। ২০ বার ব্যর্থ হলে এরর রিটার্ন করা হয়। যাইহোক, ইউজার পোলিং টাইম এবং ম্যাক্স অটেম্প্টস সংজ্ঞায়িত করতে পারে।

ধাপ ৭ − এটি None রিটার্ন করে।

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

উদাহরণ

বাকেট আছে কিনা চেক করতে ওয়েটার ব্যবহার করার জন্য নিচের কোড ব্যবহার করুন −

import boto3 from botocore.exceptions import ClientError def use_waiters_check_bucket_exists(bucket_name):     session = boto3.session.Session(profile_name='saml')     s3_client = session.client('s3')     try:         waiter = s3_client.get_waiter('bucket_exists')         waiter.wait(Bucket=bucket_name,             WaiterConfig={                 'Delay': 2, 'MaxAttempts': 5})         print('Bucket exists: ' + bucket_name)     except ClientError as e:         raise Exception("boto3 client error in use_waiters_check_bucket_exists: " + e.__str__())     except Exception as e:         raise Exception("Unexpected error in use_waiters_check_bucket_exists: " + e.__str__()) print(use_waiters_check_bucket_exists("Bucket_1")) print(use_waiters_check_bucket_exists("Bucket_2"))

আউটপুট

Bucket exists: Bucket_1 None botocore.exceptions.WaiterError: Waiter BucketExists failed: Max attempts exceeded "Unexpected error in use_waiters_check_bucket_exists: " + e.__str__()) Exception: Unexpected error in use_waiters_check_bucket_exists: Waiter BucketExists failed: Max attempts exceed

Bucket_1-এর জন্য, আউটপুট হলো প্রিন্ট স্টেটমেন্ট এবং None। যেহেতু রেসপন্স কিছু রিটার্ন করে না, তাই None প্রিন্ট হয়।

Bucket_2-এর জন্য, আউটপুট হলো এক্সসেপশন, কারণ এই বাকেটটি অস্তিত্ব নেই।

এক্সসেপশনে পড়া যায় যে Max attempts exceeded।


  1. Boto3 এবং AWS Client ব্যবহার করে S3-এ একটি রুট বাকেট আছে কিনা তা নির্ণয় করার পদ্ধতি

  2. Boto3 এবং AWS Resource ব্যবহার করে S3-এ একটি রুট বাকেট আছে কিনা তা নির্ণয় করার পদ্ধতি

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

  4. পাইথনে ফাইল এক্সিস্ট করে কিনা চেক কীভাবে করবেন?