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

Boto3 और AWS क्लाइंट का उपयोग करके S3 बकेट का नोटिफिकेशन कॉन्फ़िगरेशन विवरण कैसे प्राप्त करें?

समस्या का विवरण - S3 बकेट का नोटिफिकेशन कॉन्फ़िगरेशन प्राप्त करने के लिए Python में boto3 लाइब्रेरी का उपयोग करें। उदाहरण के लिए, S3 में बकेट_1 के नोटिफिकेशन कॉन्फ़िगरेशन विवरण प्राप्त करें।

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

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

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

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

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

चरण 5 - अब फ़ंक्शन का उपयोग करें get_bucket_notification_configuration और बकेट नेम पास करें।

चरण 6 - यह शब्दकोश देता है जिसमें S3 के बारे में विवरण होता है। यदि अधिसूचना सेट नहीं है, तो यह कोई नहीं लौटाती है

चरण 7 - फ़ाइल को हटाते समय कुछ गलत होने पर सामान्य अपवाद को संभालें।

उदाहरण

अधिसूचना कॉन्फ़िगरेशन विवरण प्राप्त करने के लिए निम्न कोड का उपयोग करें -

import boto3
from botocore.exceptions import ClientError

def get_bucket_notificationconfiguration_of_s3(bucket_name):
   session = boto3.session.Session()
   s3_client = session.client('s3')
   try:
      result = s3_client.get_bucket_notification_configuration(Bucket=bucket_name,)
   except ClientError as e:
      raise Exception( "boto3 client error in get_bucket_notificationconfiguration_of_s3: " + e.__str__())
   except Exception as e:
      raise Exception( "Unexpected error in get_bucket_notificationconfiguration_of_s3 function: " + e.__str__())
return result

print(get_bucket_notificationconfiguration_of_s3("Bucket_1"))

आउटपुट

{
   'TopicConfigurations': [
      {
         'Id': 'string',
         'TopicArn': 'string',
         'Events': [

                    's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated: Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:C
                    ompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'
                    s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:*'|'s3:ObjectRes
                    tore:Post'|'s3:ObjectRestore:Completed'|'s3:Replication:*'|'s3:Replicati
                    on:OperationFailedReplication'|'s3:Replication:OperationNotTracked'|'s3:
                    Replication:OperationMissedThreshold'|'s3:Replication:OperationReplicate
                    dAfterThreshold',
         ],
         'Filter': {
            'Key': {
               'FilterRules': [
                  {
                     'Name': 'prefix'|'suffix',
                     'Value': 'string'
                  },
               ]
            }
         }
      },
   ],
   'QueueConfigurations': [
      {
         'Id': 'string',
         'QueueArn': 'string',
         'Events': [

                    's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:
                    Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:C
                    ompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'
                    s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:*'|'s3:ObjectRes
                    tore:Post'|'s3:ObjectRestore:Completed'|'s3:Replication:*'|'s3:Replicati
                    on:OperationFailedReplication'|'s3:Replication:OperationNotTracked'|'s3:
                    Replication:OperationMissedThreshold'|'s3:Replication:OperationReplicate
                    dAfterThreshold',
         ],
         'Filter': {
            'Key': {
               'FilterRules': [
                  {
                     'Name': 'prefix'|'suffix',
                     'Value': 'string'
                  },
               ]
            }
         }
      },
   ],
   'LambdaFunctionConfigurations': [
      {
         'Id': 'string',
         'LambdaFunctionArn': 'string',
         'Events': [

                    's3:ReducedRedundancyLostObject'|'s3:ObjectCreated:*'|'s3:ObjectCreated:
                    Put'|'s3:ObjectCreated:Post'|'s3:ObjectCreated:Copy'|'s3:ObjectCreated:C
                    ompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'
                    s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:*'|'s3:ObjectRes
                    tore:Post'|'s3:ObjectRestore:Completed'|'s3:Replication:*'|'s3:Replicati
                    on:OperationFailedReplication'|'s3:Replication:OperationNotTracked'|'s3:
                    Replication:OperationMissedThreshold'|'s3:Replication:OperationReplicate
                    dAfterThreshold',
         ],
         'Filter': {
            'Key': {
               'FilterRules': [
                  {
                     'Name': 'prefix'|'suffix',
                     'Value': 'string'
                  },
               ]
            }
         }
      },
   ]
}

नोट: यह आउटपुट बकेट की सेटिंग्स/अनुमतियों पर निर्भर करता है। यदि कुछ सेटिंग्स/अनुमतियाँ डिफ़ॉल्ट हैं या सेट नहीं हैं, तो यह परिणाम को छोड़ देता है। इसी तरह, अगर बकेट के लिए नोटिफिकेशन सेट नहीं किया जाता है तो यह कोई नहीं लौटाता है।


  1. Boto3 और AWS क्लाइंट का उपयोग करके S3 बाल्टी का जीवनचक्र कैसे प्राप्त करें?

    समस्या कथन:S3 बाल्टी का जीवनचक्र प्राप्त करने के लिए पायथन में boto3 पुस्तकालय का उपयोग करें। उदाहरण के लिए, S3 में बकेट_1 का जीवनचक्र खोजें। इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें। चरण 2 -बकेट_नाम फ़ंक्शन में पैरामीटर है

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

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

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

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