समस्या विवरण
Python में Boto3 लाइब्रेरी का उपयोग करके AWS में मौजूद सभी बकेट की सूची प्राप्त करें।
उदाहरण - BUCKET_1, BUCKET2, BUCKET_3 जैसे बकेट के नाम प्राप्त करें।
इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदम
चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें।
चरण 2 - Boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं।
चरण 3 - S3 के लिए AWS क्लाइंट बनाएं।
चरण 4 - list_buckets() फ़ंक्शन का उपयोग करके बकेट के सभी गुणों को शब्दकोश में संग्रहीत करें जैसे ResponseMetadata, buckets।
चरण 5 - for लूप का उपयोग करके शब्दकोश से केवल बकेट-विशिष्ट विवरण प्राप्त करें जैसे Name, Creation Date, आदि।
चरण 6 - अब बकेट शब्दकोश से केवल Name प्राप्त करें और सूची में संग्रहीत करें।
चरण 7 - यदि कोई अवांछित अपवाद होता है तो उसे संभालें।
चरण 8 - बकेट नाम की सूची लौटाएं।
उदाहरण
S3 में मौजूद बकेट की सूची प्राप्त करने के लिए निम्न कोड -
import boto3
from botocore.exceptions import ClientError
# S3 क्लाइंट का उपयोग करके AWS में मौजूद बकेट की सूची प्राप्त करें
def get_buckets_client():
session = boto3.session.Session()
# उपयोगकर्ता कस्टमाइज़्ड एक्सेस कुंजी, सीक्रेट कुंजी और टोकन भी पास कर सकता है
s3_client = session.client('s3')
try:
response = s3_client.list_buckets()
buckets = []
for bucket in response['Buckets']:
buckets += {bucket["Name"]}
except ClientError:
print("Couldn't get buckets.")
raise
else:
return buckets
print(get_buckets_client())
आउटपुट
['BUCKET_1', 'BUCKET_2', 'BUCKET_3'……..]