ข้อกำหนดปัญหา
ใช้ Boto3 Library ใน Python เพื่อดึงรายการ Bucket ทั้งหมดที่มีอยู่ใน AWS
ตัวอย่าง
ดึงชื่อ Bucket เช่น – BUCKET_1, BUCKET_2, BUCKET_3
ขั้นตอนการแก้ปัญหา
- ขั้นตอนที่ 1 – นำเข้า
boto3และbotocore.exceptionsเพื่อจัดการข้อยกเว้น - ขั้นตอนที่ 2 – สร้าง AWS Session ด้วย Boto3 Library
- ขั้นตอนที่ 3 – สร้าง AWS Client สำหรับ S3
- ขั้นตอนที่ 4 – ใช้ฟังก์ชัน list_buckets() เก็บ Properties ทั้งหมดของ Bucket ใน Dictionary เช่น ResponseMetadata, Buckets
- ขั้นตอนที่ 5 – ใช้ for loop เพื่อดึงรายละเอียดเฉพาะ Bucket จาก Dictionary เช่น Name, Creation Date ฯลฯ
- ขั้นตอนที่ 6 – ตอนนี้ ดึง Name เท่านั้นจาก Bucket Dictionary และเก็บใน List
- ขั้นตอนที่ 7 – จัดการ Exception ที่ไม่พึงประสงค์หากเกิดขึ้น
- ขั้นตอนที่ 8 – คืนค่า List ของ buckets_name
ตัวอย่างโค้ด
โค้ดต่อไปนี้ดึงรายการ Bucket ที่มีอยู่ใน 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.append(bucket["Name"])
except ClientError:
print("Couldn't get buckets.")
raise
else:
return buckets
print(get_buckets_client())
ผลลัพธ์
['BUCKET_1', 'BUCKET_2', 'BUCKET_3'...]