คำชี้แจงปัญหา − ใช้ไลบรารี Boto3 ใน Python เพื่อรับรายการบัคเก็ตทั้งหมดที่มีอยู่ใน AWS
ตัวอย่าง − รับชื่อถังเช่น – BUCKET_1, BUCKET2, BUCKET_3
แนวทาง/อัลกอริทึมในการแก้ปัญหานี้
ขั้นตอนที่ 1 - นำเข้าข้อยกเว้น boto3 และ botocore เพื่อจัดการกับข้อยกเว้น
ขั้นตอนที่ 2 − สร้างเซสชัน AWS โดยใช้ไลบรารี Boto3
ขั้นตอนที่ 3 − สร้างไคลเอนต์ AWS สำหรับ S3
ขั้นตอนที่ 4 − ใช้ฟังก์ชัน list_buckets() เพื่อจัดเก็บคุณสมบัติทั้งหมดของที่ฝากข้อมูลในพจนานุกรม เช่น ResponseMetadata, buckets
ขั้นตอนที่ 5 − ใช้ สำหรับ วนซ้ำเพื่อรับรายละเอียดเฉพาะกลุ่มจากพจนานุกรม เช่น ชื่อ วันที่สร้าง ฯลฯ
ขั้นตอนที่ 6 − ตอนนี้ เรียกเฉพาะ ชื่อ จากพจนานุกรมถังและเก็บไว้ในรายการ
ขั้นตอนที่ 7 − จัดการข้อยกเว้นที่ไม่ต้องการหากเกิดขึ้น
ขั้นตอนที่ 8 − กลับรายการ buckets_name
ตัวอย่าง
รหัสต่อไปนี้รับรายการของที่ฝากข้อมูลที่มีอยู่ใน S3 -
import boto3 from botocore.exceptions import ClientError # To get list of buckets present in AWS using S3 client def get_buckets_client(): session = boto3.session.Session() # User can pass customized access key, secret_key and token as well s3_client = session.client('s3') try: response = s3_client.list_buckets() buckets =[] for bucket in response['Buckets'] buckets += {bucket["Name"]} except ClientError: print("Couldn't get buckets.") raise else: return buckets print(get_buckets_client())
ผลลัพธ์
['BUCKET_1', 'BUCKET_2', 'BUCKET_3'……..]