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

Cách lấy danh sách các bucket có trong S3 bằng Boto3 và AWS Client


Đề 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'…]