এই প্রবন্ধে, আমরা দেখব কিভাবে Boto3 লাইব্রেরি এবং ওয়েটার কার্যকারিতা ব্যবহার করতে হয় যে S3 বালতি আছে কি না তা যাচাই করতে। উদাহরণস্বরূপ, S3
এ Bucket_1 বিদ্যমান কিনা তা পরীক্ষা করতে ওয়েটার ব্যবহার করুন৷এই সমস্যা সমাধানের জন্য পদ্ধতি/অ্যালগরিদম
ধাপ 1 − ব্যতিক্রমগুলি পরিচালনা করতে boto3 এবং botocore ব্যতিক্রমগুলি আমদানি করুন৷
৷ধাপ 2 − ফাংশনে প্যারামিটার হিসাবে bucket_name ব্যবহার করুন।
ধাপ 3 - boto3 লাইব্রেরি ব্যবহার করে একটি AWS সেশন তৈরি করুন।
পদক্ষেপ 4৷ - S3 এর জন্য একটি AWS ক্লায়েন্ট তৈরি করুন।
ধাপ 5 − এখন bucket_exists-এর জন্য অপেক্ষার বস্তু তৈরি করুন get_waiter ব্যবহার করে ফাংশন।
ধাপ 6 − এখন, বালতি আছে কি না তা যাচাই করতে অপেক্ষা বস্তুটি ব্যবহার করুন। ডিফল্টরূপে, এটি প্রতি 5 সেকেন্ডে একটি সফল অবস্থায় না পৌঁছানো পর্যন্ত পরীক্ষা করে। 20টি ব্যর্থ চেকের পরে একটি ত্রুটি ফেরত দেওয়া হয়৷ যাইহোক, ব্যবহারকারী ভোটদানের সময় এবং সর্বোচ্চ প্রচেষ্টা নির্ধারণ করতে পারেন।
পদক্ষেপ 7 - এটি কোনটিই ফেরত দেয় না।
ধাপ 8 − বালতি চেক করার সময় কিছু ভুল হলে জেনেরিক ব্যতিক্রমটি পরিচালনা করুন।
উদাহরণ
bucket_exist কি না −
তা পরীক্ষা করতে ওয়েটার ব্যবহার করতে নিম্নলিখিত কোডটি ব্যবহার করুনboto3from botocore.exceptions import ClientErrordef use_waiters_check_bucket_exists(bucket_name):session =boto3.session.Session(profile_name='saml') s3_client =session.client('s3') চেষ্টা করুন:waiter_ext'waiter_client's3. ) waiter.wait(Bucket=bucket_name, WaiterConfig={ 'বিলম্ব':2, 'MaxAttempts':5}) প্রিন্ট ('বালতি বিদ্যমান:' + bucket_name) ব্যতীত ClientError হিসাবে e:raise Exception( "boto3 ক্লায়েন্ট ত্রুটি use_waiters_exists_check_bucket " + e.__str__()) ব্যতিক্রম ব্যতীত e হিসাবে:raise Exception( "use_waiters_check_bucket_exists এ অপ্রত্যাশিত ত্রুটি:" + e.__str__())মুদ্রণ(use_waiters_check_bucket_exists("Bucket_1"))print(use_waiters_check_bucket_Bucket_Bucket_exists") প্রাক>আউটপুট
বালতি বিদ্যমান:Bucket_1Nonebotocore.exceptions.WaiterError:Waiter BucketExists ব্যর্থ হয়েছে:Maxattempts exceeded"Use_waiters_check_bucket_exists-এ অপ্রত্যাশিত ত্রুটি:" + e.__str__())ব্যতিক্রম:অপ্রত্যাশিত ত্রুটি:ওয়েটার-এক্সপ্রেসিস্টস ব্যর্থ হয়েছেBucket_1 এর জন্য, আউটপুট হল প্রিন্ট স্টেটমেন্ট এবং None। যেহেতু প্রতিক্রিয়া কিছুই ফেরত দেয় না, এটি কোনটিই প্রিন্ট করে না।
Bucket_2 এর জন্য, আউটপুট একটি ব্যতিক্রম, যেহেতু এই বালতিটি বিদ্যমান নেই।
ব্যতিক্রমে, এটি পড়া যেতে পারে যে সর্বোচ্চ প্রচেষ্টা অতিক্রম করেছে।