Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Boto3 और AWS क्लाइंट का उपयोग करके bucket_not_exists के लिए वेटर कार्यक्षमता कैसे उपयोग करें?


समस्या विवरण - Python में boto3 लाइब्रेरी का उपयोग करके वेटर कार्यक्षमता का उपयोग करके चेक करें कि बकेट मौजूद नहीं है। उदाहरण के लिए, वेटर्स का उपयोग करके चेक करें कि Bucket_2 S3 में मौजूद नहीं है।

इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदम

चरण 1 - अपवादों को संभालने के लिए boto3 और botocore एक्सेप्शन्स आयात करें।

चरण 2 - फंक्शन में पैरामीटर के रूप में bucket_name का उपयोग करें।

चरण 3 - boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं।

चरण 4 - S3 के लिए AWS क्लाइंट बनाएं।

चरण 5 - अब get_waiter फंक्शन का उपयोग करके bucket_not_exists के लिए वेट ऑब्जेक्ट बनाएं।

चरण 6 - अब, बकेट मौजूद नहीं है यह सत्यापित करने के लिए wait ऑब्जेक्ट का उपयोग करें। डिफ़ॉल्ट रूप से, यह हर 5 सेकंड में चेक करता है जब तक सफल स्टेट नहीं पहुंच जाता। यहां सफल स्टेट का मतलब है कि बकेट S3 में मौजूद नहीं होना चाहिए। 20 विफल चेक के बाद त्रुटि लौटाई जाती है। हालांकि, यूज़र पोलिंग टाइम और अधिकतम प्रयास परिभाषित कर सकता है।

चरण 7 - यह None लौटाता है।

चरण 8 - बकेट चेक करते समय यदि कुछ गलत हुआ तो सामान्य अपवाद को संभालें।

उदाहरण

बकेट_नॉट_एग्ज़िस्ट्स चेक करने के लिए वेटर का उपयोग करने के लिए निम्न कोड का उपयोग करें -

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 के लिए, आउटपुट एक अपवाद है, क्योंकि यह बकेट अधिकतम प्रयासों के बाद भी मौजूद है।

अपवाद में पढ़ा जा सकता है कि अधिकतम प्रयास पार हो गए।


  1. - Boto3 और AWS Client का उपयोग करके S3 में रूट बकेट मौजूद है या नहीं कैसे निर्धारित करें?

    समस्या विवरण Python में Boto3 लाइब्रेरी का उपयोग करके निर्धारित करें कि S3 में रूट बकेट मौजूद है या नहीं। उदाहरण - Bucket_1 S3 में मौजूद है या नहीं। इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदम चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें। चरण 2 - boto3 लाइब्रेरी का उपयोग करके

  1. - Boto3 और AWS Resource का उपयोग करके S3 में रूट बकेट मौजूद है या नहीं कैसे निर्धारित करें?

    समस्या विवरण Python में Boto3 लाइब्रेरी का उपयोग करके निर्धारित करें कि S3 में रूट बकेट मौजूद है या नहीं। उदाहरण - Bucket_1 S3 में मौजूद है या नहीं। इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदम चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें। चरण 2 - boto3 लाइब्रेरी का उपयोग करके

  1. - AWS Client का उपयोग करके Boto3 से S3 में मौजूद बकेट की सूची कैसे प्राप्त करें?

    समस्या विवरण Python में Boto3 लाइब्रेरी का उपयोग करके AWS में मौजूद सभी बकेट की सूची प्राप्त करें। उदाहरण - BUCKET_1, BUCKET2, BUCKET_3 जैसे बकेट के नाम प्राप्त करें। इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदम चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें। चरण 2 - Boto3 लाइब्