Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách kiểm tra bucket gốc có tồn tại trong S3 bằng Boto3 và AWS Client


Đề bài – Sử dụng thư viện Boto3 trong Python để xác định xem một bucket gốc có tồn tại trong S3 hay không.

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

Phương pháp/Thuật toán giải quyết

Bước 1 – Import boto3 và các ngoại lệ từ botocore để xử lý lỗi.

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

Bước 3 – Tạo client AWS cho S3.

Bước 4 – Sử dụng hàm head_bucket(). Nó trả về 200 OK nếu bucket tồn tại và người dùng có quyền truy cập. Ngược lại, phản hồi sẽ là 403 Forbidden hoặc 404 Not Found.

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 bucket có tồn tại hay không.

Ví dụ

Mã sau kiểm tra xem bucket gốc có tồn tại trong S3:

import boto3
from botocore.exceptions import ClientError

# Kiểm tra xem bucket gốc có tồn tại hay không
def bucket_exists(bucket_name):
    try:
        session = boto3.session.Session()
        # Người dùng có thể truyền access key, secret_key và token tùy chỉnh
        s3_client = session.client('s3')
        s3_client.head_bucket(Bucket=bucket_name)
        print("Bucket tồn tại.", bucket_name)
        exists = True
    except ClientError as error:
        error_code = int(error.response['Error']['Code'])
        if error_code == 403:
            print("Bucket riêng tư. Truy cập bị cấm! ", bucket_name)
        elif error_code == 404:
            print("Bucket không tồn tại!", bucket_name)
        exists = False
    return exists

print(bucket_exists('bucket_1'))
print(bucket_exists('AWS_bucket_1'))

Kết quả

Bucket tồn tại. bucket_1 True
Bucket không tồn tại! AWS_bucket_1 False