কম্পিউটার টিউটোরিয়াল

Boto3 এবং AWS Client ব্যবহার করে S3 বাকেটের নোটিফিকেশন কনফিগারেশন ডিটেইলস পাওয়া


সমস্যা বিবরণ − Python-এ boto3 লাইব্রেরি ব্যবহার করে একটি S3 বাকেটের নোটিফিকেশন কনফিগারেশন পাওয়া। উদাহরণস্বরূপ, S3-এ Bucket_1-এর নোটিফিকেশন কনফিগারেশন ডিটেইলস খুঁজে বের করা।

সমাধানের পদ্ধতি/অ্যালগরিদম

ধাপ ১ − boto3 এবং botocore এক্সসেপশন ইম্পোর্ট করে এক্সসেপশন হ্যান্ডল করা।

ধাপ ২ − ফাংশনে bucket_name প্যারামিটার ব্যবহার করা।

ধাপ ৩ − boto3 লাইব্রেরি ব্যবহার করে AWS সেশন তৈরি করা।

ধাপ ৪ − S3-এর জন্য AWS ক্লায়েন্ট তৈরি করা।

ধাপ ৫ − এখন get_bucket_notification_configuration ফাংশন ব্যবহার করুন এবং বাকেটের নাম পাস করুন।

ধাপ ৬ − এটি S3 সম্পর্কে ডিটেইলস সহ একটি ডিকশনারি রিটার্ন করে। যদি নোটিফিকেশন সেট না থাকে, তবে এটি NONE রিটার্ন করে।

ধাপ ৭ − ফাইল ডিলিট করার সময় যদি কিছু ভুল হয় তবে জেনেরিক এক্সসেপশন হ্যান্ডল করা।

উদাহরণ

নোটিফিকেশন কনফিগারেশন ডিটেইলস পাওয়ার জন্য নিচের কোড ব্যবহার করুন −

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:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:*'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed'|'s3:Replication:*'|'s3:Replication:OperationFailedReplication'|'s3:Replication:OperationNotTracked'|'s3:Replication:OperationMissedThreshold'|'s3:Replication:OperationReplicatedAfterThreshold',             ],             '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:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:*'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed'|'s3:Replication:*'|'s3:Replication:OperationFailedReplication'|'s3:Replication:OperationNotTracked'|'s3:Replication:OperationMissedThreshold'|'s3:Replication:OperationReplicatedAfterThreshold',             ],             '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:CompleteMultipartUpload'|'s3:ObjectRemoved:*'|'s3:ObjectRemoved:Delete'|'s3:ObjectRemoved:DeleteMarkerCreated'|'s3:ObjectRestore:*'|'s3:ObjectRestore:Post'|'s3:ObjectRestore:Completed'|'s3:Replication:*'|'s3:Replication:OperationFailedReplication'|'s3:Replication:OperationNotTracked'|'s3:Replication:OperationMissedThreshold'|'s3:Replication:OperationReplicatedAfterThreshold',             ],             'Filter': {                 'Key': {                     'FilterRules': [                         {                             'Name': 'prefix'|'suffix',                             'Value': 'string'                         },                     ]                 }             }         },     ] }

নোট: এই আউটপুট বাকেটের সেটিংস/পারমিশনের উপর নির্ভর করে। যদি কিছু সেটিংস/পারমিশন ডিফল্ট বা সেট না থাকে তবে সেটি ফলাফলে বাদ দেওয়া হয়। একইভাবে, যদি বাকেটের জন্য নোটিফিকেশন সেট না থাকে তবে এটি NONE রিটার্ন করে।


  1. Boto3 এবং AWS Client ব্যবহার করে S3 বাকেটের অবস্থান কীভাবে পেতে হয়?

  2. Boto3 এবং AWS Client ব্যবহার করে S3 বাকেটের লাইফসাইকেল কীভাবে পেতে হয়?

  3. Boto3 এবং AWS Client ব্যবহার করে S3-এ একটি রুট বাকেট আছে কিনা তা নির্ণয় করার পদ্ধতি

  4. Boto3 এবং AWS Client ব্যবহার করে S3-এ উপস্থিত বাকেটগুলির তালিকা পেতে পদ্ধতি