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

จะใช้ Boto3 เพื่อรับรายการบัคเก็ตที่มีอยู่ใน S3 โดยใช้ AWS Client ได้อย่างไร


คำชี้แจงปัญหา − ใช้ไลบรารี 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'……..]