Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để sử dụng Boto3 và AWS Resource để xác định xem một nhóm gốc có tồn tại trong S3 hay không?

Tuyên bố sự cố - Sử dụng thư viện Boto3 trong Python để xác định xem bộ chứa gốc có tồn tại trong S3 hay không.

Ví dụ - Bucket_1 tồn tại hay không trong S3.

Phương pháp tiếp cận / Thuật toán để giải quyết vấn đề này

Bước 1 - Nhập các ngoại lệ boto3 và botocore để xử lý các ngoại lệ.

Bước 2 - Tạo phiên AWS bằng thư viện boto3.

Bước 3 - Tạo tài nguyên AWS cho S3.

Bước 4 - Sử dụng hàm head_bucket () . Nó trả về 200 OK nếu nhóm tồn tại và người dùng có quyền truy cập vào nó. Nếu không, câu trả lời sẽ là 403 Forbidden hoặc 404 Không tìm thấy .

Bước 5 - Xử lý ngoại lệ dựa trên mã phản hồi.

Bước 6 - Trả về True / False dựa trên việc nhóm có tồn tại hay không.

Ví dụ

Đoạn mã sau kiểm tra xem bộ chứa gốc có tồn tại trong S3 hay không -

import boto3
from botocore.exceptions import ClientError

# To check whether root bucket exists or not
def bucket_exists(bucket_name):
   try:
      session = boto3.session.Session()
      # User can pass customized access key, secret_key and token as well
      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'))

Đầu ra

Nhóm
Bucket exists. bucket_1
True
Bucket Does Not Exist! AWS_bucket_1
False