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

Boto3 में वेटर कार्यक्षमता का उपयोग करके सत्यापित करें कि S3 बकेट में कोई की मौजूद नहीं है?


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

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

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

चरण 2 - bucket_name और key फंक्शन में दो पैरामीटर हैं।

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

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

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

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

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

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

उदाहरण

वेटर का उपयोग करके चेक करने के लिए निम्न कोड का उपयोग करें कि की बकेट में मौजूद है या नहीं -

import boto3 from botocore.exceptions import ClientError def use_waiters_check_object_not_exists(bucket_name, key_name):     session = boto3.session.Session()     s3_client = session.client('s3')     try:         waiter = s3_client.get_waiter('object_not_exists')         waiter.wait(Bucket=bucket_name, Key=key_name,             WaiterConfig={'Delay': 2, 'MaxAttempts': 5})         print('Object does not exist: ' + bucket_name + '/' + key_name)     except ClientError as e:         raise Exception("boto3 client error in use_waiters_check_object_not_exists: " + e.__str__())     except Exception as e:         raise Exception("Unexpected error in use_waiters_check_object_not_exists: " + e.__str__()) print(use_waiters_check_object_exists("Bucket_1","testfolder/test1.zip")) print(use_waiters_check_object_exists("Bucket_1","testfolder/test.zip"))

आउटपुट

Object does not exist: Bucket_1/testfolder/test1.zip None botocore.exceptions.WaiterError: Waiter ObjectNotExists failed: Max attempts exceeded "Unexpected error in use_waiters_check_object_not_exists: " + e.__str__()) Exception: Unexpected error in use_waiters_check_object_not_exists: Waiter ObjectNotExists failed: Max attempts exceed

Bucket_1/testfolder/test1.zip के लिए, आउटपुट प्रिंट स्टेटमेंट और None है। चूंकि रिस्पॉन्स कुछ भी नहीं लौटाता, यह None प्रिंट करता है।

Bucket_1/testfolder/test.zip के लिए, आउटपुट एक अपवाद है क्योंकि यह ऑब्जेक्ट मौजूद है।

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


  1. C# में फ़ोल्डर कैसे बनाएं यदि वह मौजूद नहीं है? C# में फ़ोल्डर कैसे बनाएं यदि वह मौजूद नहीं है?

    डायरेक्टरी बनाने के लिए, हमें पहले C# में System.IO नेमस्पेस को इम्पोर्ट करना होगा। नेमस्पेस एक लाइब्रेरी है जो आपको डायरेक्टरी बनाने, कॉपी करने, मूव करने और डिलीट करने के लिए स्टैटिक मेथड्स तक पहुंचने की अनुमति देती है। C# में किसी भी फाइल ऑपरेशन करने से पहले डायरेक्टरी मौजूद है या नहीं यह जांचना

  1. Outlook त्रुटि - निर्दिष्ट लॉगऑन सत्र मौजूद नहीं है Outlook त्रुटि - निर्दिष्ट लॉगऑन सत्र मौजूद नहीं है

    जब आप अपने Windows 10 PC पर Microsoft Outlook के साथ काम कर रहे होते हैं, तो आपको लंबी अवधि के लिए सर्वर संदेश A specified logon session does not exist; It may already have been terminated प्राप्त होता है, तो यह पोस्ट आपकी मदद कर सकती है। यह संदेश आपके OneDrive खाते में लॉग इन करने का प्रयास करते सम

  1. अगर कीबोर्ड पर इन्सर्ट की न हो तो उसका फंक्शन कैसे उपयोग करें? अगर कीबोर्ड पर इन्सर्ट की न हो तो उसका फंक्शन कैसे उपयोग करें?

    इन्सर्ट की आमतौर पर कंप्यूटर के अधिकांश कीबोर्ड पर पाई जाती है। इसका उपयोग ज्यादातर विभिन्न टेक्स्ट एडिटर्स में ओवरराइट और इन्सर्ट मोड के बीच टॉगल करने के लिए किया जाता है। इन्सर्ट की का एक अन्य उपयोग कॉपी और पेस्ट फंक्शन है। यह अभी भी कुछ एप्लिकेशन और प्रोग्रामिंग टूल्स में उपयोग किया जाता है। कुछ