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

Boto3 এবং AWS Client ব্যবহার করে bucket_not_exists জন্য ওয়েটার ফাংশনালিটি ব্যবহার করা


সমস্যা বিবরণ − Python-এ boto3 লাইব্রেরি ব্যবহার করে ওয়েটার ফাংশনালিটি ব্যবহার করে একটি বাকেট অস্তিত্ব নেই কিনা চেক করা। উদাহরণস্বরূপ, ওয়েটার ব্যবহার করে চেক করা যে Bucket_2 S3-এ অস্তিত্ব নেই।

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

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

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

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

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

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

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

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

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

উদাহরণ

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

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

আউটপুট

Bucket not exist: Bucket_2 None botocore.exceptions.WaiterError: Waiter BucketNotExists failed: Max attempts exceeded "Unexpected error in use_waiters_check_bucket_not_exists: " + e.__str__()) Exception: Unexpected error in use_waiters_check_bucket_not_exists: Waiter BucketNotExists failed: Max attempts exceed 

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

Bucket_1-এর জন্য, আউটপুট হলো এক্সসেপশন, কারণ এই বাকেটটিแมক্স অটেম্প্টস পেরোনো পরেও অস্তিত্ব রেখেছে।

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


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

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

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

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