Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

AWS 클라이언트를 사용하여 S3에 있는 버킷 목록을 가져오기 위해 Boto3를 사용하는 방법은 무엇입니까?

<시간/>

문제 설명 − Python에서 Boto3 라이브러리를 사용하여 AWS에 있는 모든 버킷 목록 가져오기

− BUCKET_1, BUCKET2, BUCKET_3과 같은 버킷 이름 가져오기

이 문제를 해결하기 위한 접근 방식/알고리즘

1단계 − boto3 및 botocore 예외를 가져와 예외를 처리합니다.

2단계 − Boto3 라이브러리를 사용하여 AWS 세션을 생성합니다.

3단계 − S3용 AWS 클라이언트를 생성합니다.

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'……..]