Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีใช้ Boto3 ดึงรายการ Bucket ทั้งหมดใน S3 โดยใช้ AWS Client


ข้อกำหนดปัญหา

ใช้ Boto3 Library ใน Python เพื่อดึงรายการ Bucket ทั้งหมดที่มีอยู่ใน AWS

ตัวอย่าง

ดึงชื่อ Bucket เช่น – BUCKET_1, BUCKET_2, BUCKET_3

ขั้นตอนการแก้ปัญหา

  1. ขั้นตอนที่ 1 – นำเข้า boto3 และ botocore.exceptions เพื่อจัดการข้อยกเว้น
  2. ขั้นตอนที่ 2 – สร้าง AWS Session ด้วย Boto3 Library
  3. ขั้นตอนที่ 3 – สร้าง AWS Client สำหรับ S3
  4. ขั้นตอนที่ 4 – ใช้ฟังก์ชัน list_buckets() เก็บ Properties ทั้งหมดของ Bucket ใน Dictionary เช่น ResponseMetadata, Buckets
  5. ขั้นตอนที่ 5 – ใช้ for loop เพื่อดึงรายละเอียดเฉพาะ Bucket จาก Dictionary เช่น Name, Creation Date ฯลฯ
  6. ขั้นตอนที่ 6 – ตอนนี้ ดึง Name เท่านั้นจาก Bucket Dictionary และเก็บใน List
  7. ขั้นตอนที่ 7 – จัดการ Exception ที่ไม่พึงประสงค์หากเกิดขึ้น
  8. ขั้นตอนที่ 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'...]