Đề 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 resource 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_resource = session.resource('s3')
s3_resource.meta.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