समस्या विवरण
Python में Boto3 लाइब्रेरी का उपयोग करके निर्धारित करें कि S3 में रूट बकेट मौजूद है या नहीं।
उदाहरण - Bucket_1 S3 में मौजूद है या नहीं।
इस समस्या को हल करने का दृष्टिकोण/एल्गोरिदम
चरण 1 - अपवादों को संभालने के लिए boto3 और botocore अपवाद आयात करें।
चरण 2 - boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं।
चरण 3 - S3 के लिए AWS रिसोर्स बनाएं।
चरण 4 - head_bucket() फ़ंक्शन का उपयोग करें। यदि बकेट मौजूद है और उपयोगकर्ता के पास इसे एक्सेस करने की अनुमति है तो यह 200 OK लौटाता है। अन्यथा, प्रतिक्रिया 403 Forbidden या 404 Not Found होगी।
चरण 5 - प्रतिक्रिया कोड के आधार पर अपवाद को संभालें।
चरण 6 - बकेट मौजूद है या नहीं, इसके आधार पर True/False लौटाएं।
उदाहरण
निम्न कोड जांचता है कि S3 में रूट बकेट मौजूद है या नहीं -
import boto3
from botocore.exceptions import ClientError
# जांचें कि रूट बकेट मौजूद है या नहीं
def bucket_exists(bucket_name):
try:
session = boto3.session.Session()
# उपयोगकर्ता कस्टमाइज़्ड एक्सेस कुंजी, सीक्रेट कुंजी और टोकन भी पास कर सकता है
s3_resource = session.resource('s3')
s3_resource.meta.client.head_bucket(Bucket=bucket_name)
print("Bucket exists.", bucket_name)
exists = True
except ClientError as error:
error_code = int(error.response['Error']['Code'])
if error_code == 403:
print("Private Bucket. Forbidden Access! ", bucket_name)
elif error_code == 404:
print("Bucket Does Not Exist!", bucket_name)
exists = False
return exists
print(bucket_exists('bucket_1'))
print(bucket_exists('AWS_bucket_1'))
आउटपुट
Bucket exists. bucket_1 True Bucket Does Not Exist! AWS_bucket_1 False