Đề bài – Sử dụng thư viện Boto3 trong Python để lấy danh sách tất cả các bucket có trong AWS.
Ví dụ – Lấy tên các bucket như – BUCKET_1, BUCKET2, BUCKET_3.
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 list_buckets() để lưu trữ tất cả thuộc tính của các bucket trong một dictionary như ResponseMetadata, buckets.
Bước 5 – Sử dụng vòng lặp for để lấy chỉ các chi tiết riêng của bucket từ dictionary như Name, Creation Date, v.v.
Bước 6 – Lấy chỉ Name từ dictionary bucket và lưu vào một list.
Bước 7 – Xử lý bất kỳ ngoại lệ không mong muốn nào nếu xảy ra.
Bước 8 – Trả về danh sách buckets_name.
Ví dụ
Mã sau lấy danh sách các bucket có trong S3:
import boto3
from botocore.exceptions import ClientError
# Lấy danh sách bucket có trong AWS sử dụng S3 client
def get_buckets_client():
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')
try:
response = s3_client.list_buckets()
buckets = []
for bucket in response['Buckets']:
buckets += {bucket["Name"]}
except ClientError:
print("Không thể lấy buckets.")
raise
else:
return buckets
print(get_buckets_client())
Kết quả
['BUCKET_1', 'BUCKET_2', 'BUCKET_3'…]