इस लेख में, हम देखेंगे कि S3 बकेट मौजूद है या नहीं, यह सत्यापित करने के लिए Boto3 लाइब्रेरी और वेटर कार्यक्षमता का उपयोग कैसे करें। उदाहरण के लिए, वेटर्स का उपयोग यह जांचने के लिए करें कि क्या बकेट_1 S3 में मौजूद है
इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम
चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें।
चरण 2 - फ़ंक्शन में पैरामीटर के रूप में बकेट_नाम का उपयोग करें।
चरण 3 - boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं।
चरण 4 - S3 के लिए AWS क्लाइंट बनाएं।
चरण 5 − अब bucket_exists . के लिए प्रतीक्षा ऑब्जेक्ट बनाएं get_waiter . का उपयोग करके समारोह।
चरण 6 - अब, बकेट मौजूद है या नहीं, यह सत्यापित करने के लिए प्रतीक्षा वस्तु का उपयोग करें। डिफ़ॉल्ट रूप से, यह हर 5 सेकंड में एक सफल स्थिति तक पहुंचने तक जांच करता है। 20 विफल जाँचों के बाद एक त्रुटि लौटा दी जाती है। हालांकि, उपयोगकर्ता मतदान के समय और अधिकतम प्रयासों को परिभाषित कर सकता है।
चरण 7 - यह कोई नहीं लौटाता है।
चरण 8 - बकेट चेक करते समय कुछ गलत होने पर सामान्य अपवाद को हैंडल करें।
उदाहरण
बकेट_एक्सिस्ट है या नहीं यह जांचने के लिए वेटर का उपयोग करने के लिए निम्नलिखित कोड का उपयोग करें -
बोटोकोर से आयात करें। ) Waiter.wait(bucket=bucket_name, WaiterConfig={'Delay':2, 'MaxAttempts':5}) प्रिंट ('बकेट मौजूद है:' +bucket_name) ClientError को छोड़कर e:रेज़ एक्सेप्शन ("boto3 क्लाइंट एरर in use_waiters_check_bucket_exists:"+ e.__str__ ()) अपवाद को छोड़कर e:अपवाद बढ़ाएँ ("use_waiters_check_bucket_exists में अनपेक्षित त्रुटि:" + e.__str__ ()) प्रिंट (use_waiters_check_bucket_exists("bucket_1"))print(use_waiters_check_bucket_exists("bucket_2"))
आउटपुट
बकेट मौजूद है:बकेट_1कोई नहीं है।बकेट_1 के लिए, आउटपुट प्रिंट स्टेटमेंट है और कोई नहीं। चूंकि प्रतिक्रिया कुछ भी वापस नहीं करती है, यह कोई नहीं प्रिंट करती है।
बकेट_2 के लिए, आउटपुट एक अपवाद है, क्योंकि यह बकेट मौजूद नहीं है।
अपवाद में, यह पढ़ा जा सकता है कि अधिकतम प्रयास पार हो गए।