সমস্যা বিবৃতি - ওয়েটার কার্যকারিতা ব্যবহার করে একটি বালতি বিদ্যমান নেই কিনা তা পরীক্ষা করতে পাইথনে boto3 লাইব্রেরি ব্যবহার করুন৷ উদাহরণস্বরূপ, S3 এ Bucket_2 বিদ্যমান নেই কিনা তা পরীক্ষা করতে ওয়েটার ব্যবহার করুন।
এই সমস্যা সমাধানের জন্য অ্যাপ্রোচ/অ্যালগরিদম
ধাপ 1 − ব্যতিক্রমগুলি পরিচালনা করতে boto3 এবং botocore ব্যতিক্রমগুলি আমদানি করুন৷
৷ধাপ 2 − ফাংশনে প্যারামিটার হিসাবে bucket_name ব্যবহার করুন।
ধাপ 3 - boto3 লাইব্রেরি ব্যবহার করে একটি AWS সেশন তৈরি করুন।
পদক্ষেপ 4৷ - S3 এর জন্য একটি AWS ক্লায়েন্ট তৈরি করুন।
ধাপ 5 − এখন bucket_not_exists-এর জন্য অপেক্ষার বস্তু তৈরি করুন get_waiter ব্যবহার করে ফাংশন।
ধাপ 6 - এখন, অপেক্ষা ব্যবহার করুন বালতিটির অস্তিত্ব নেই কিনা তা যাচাই করতে আপত্তি। ডিফল্টরূপে, এটি প্রতি 5 সেকেন্ডে একটি সফল অবস্থায় না পৌঁছানো পর্যন্ত পরীক্ষা করে। এখানে সফল রাষ্ট্র মানে S3 তে বালতি থাকা উচিত নয়। 20টি ব্যর্থ চেকের পরে একটি ত্রুটি ফেরত দেওয়া হয়৷ যাইহোক, ব্যবহারকারী ভোটদানের সময় এবং সর্বোচ্চ প্রচেষ্টা নির্ধারণ করতে পারেন।
পদক্ষেপ 7 - এটি কোনটিই ফেরত দেয় না।
ধাপ 8 − বালতি চেক করার সময় কিছু ভুল হলে জেনেরিক ব্যতিক্রমটি পরিচালনা করুন।
উদাহরণ
bucket_not_exists −
কিনা তা পরীক্ষা করতে ওয়েটার ব্যবহার করতে নিম্নলিখিত কোডটি ব্যবহার করুনboto3from botocore.exceptions import ClientErrordef use_waiters_check_bucket_not_exists(bucket_name):session =boto3.session.Session() s3_client =session.client('s3') চেষ্টা করুন:ওয়েটার =s3_client('s3') অপেক্ষা করুন Bucket=bucket_name, WaiterConfig={ 'বিলম্ব':2, 'MaxAttempts':5}) মুদ্রণ('বালতি বিদ্যমান নেই:' + bucket_name) ব্যতীত ক্লায়েন্ট এরর হিসাবে e:raise Exception( "boto3 ক্লায়েন্ট এরর in use_waiters_check_bucket_" +eexists. __str__()) ব্যতিক্রম ব্যতীত e হিসাবে:raise Exception( "use_waiters_check_bucket_not_exists-এ অপ্রত্যাশিত ত্রুটি:" + e.__str__())মুদ্রণ(use_waiters_check_bucket_not_exists("Bucket_2"))print(use_waiters_check_bucket_not_exists("Bucket_2"))print(use_waiters_check_bucket_no")আউটপুট
বালতি বিদ্যমান নেই:Bucket_2Nonebotocore.exceptions.WaiterError:Waiter BucketNotExists ব্যর্থ হয়েছে:Maxattempts exceeded"Use_waiters_check_bucket_not_exists-এ অপ্রত্যাশিত ত্রুটি:" +e.__str__())ব্যতিক্রম:Bucket_2Nonebotocore.exceptions.Exceptions:Unexpected_buckets/bucket_notExceptions.>Bucket_2 এর জন্য, আউটপুট হল প্রিন্ট স্টেটমেন্ট এবং None। যেহেতু প্রতিক্রিয়া কিছুই ফেরত দেয় না, এটি কোনটিই প্রিন্ট করে না।
Bucket_1 এর জন্য, আউটপুটটি একটি ব্যতিক্রম, যেহেতু এই বালতিটি চেক করার সর্বোচ্চ প্রচেষ্টার পরেও বিদ্যমান।
ব্যতিক্রমে, এটি পড়া যেতে পারে যে সর্বোচ্চ প্রচেষ্টা অতিক্রম করেছে।