如何使用Boto3和AWS客户端获取S3中存在的所有存储桶的列表?

如何使用Boto3和AWS客户端获取S3中存在的所有存储桶的列表?

问题陈述 − 使用Python中的Boto3库获取AWS中所有存储桶的列表

示例 − 获取类似于“BUCKET_1,BUCKET2,BUCKET_3”之类的存储桶名称

更多Python相关文章,请阅读:Python 教程

解决此问题的方法/算法

步骤1 − 导入boto3和botocore异常以处理异常。

步骤2 − 使用Boto3库创建AWS会话。

步骤3 − 为S3创建一个AWS客户端。

步骤4 − 使用函数list_buckets()将所有存储桶的属性存储在字典中,如ResponseMetadata,buckets

步骤5 − 使用for循环从字典中获取仅与存储桶相关的详细信息,例如名称,创建日期等。

步骤6 − 现在,只从存储桶字典中检索Name,并将其存储在列表中。

步骤7 − 处理任何不必要的异常,如果出现异常

步骤8 − 返回存储桶名称列表

示例

以下代码获取S3中存在的存储桶列表 –

import boto3
from botocore.exceptions import ClientError

# 使用S3客户端获取AWS中存在的存储桶列表
def get_buckets_client():
   session = boto3.session.Session()
   # 用户也可以使用自定义的access key、secret_key和token
   s3_client = session.client('s3')
   try:
      response = s3_client.list_buckets()
      buckets =[]
      for bucket in response['Buckets']
         buckets += {bucket["Name"]}

   except ClientError:
        print("无法获取存储桶。")
        raise
   else:
        return buckets

print(get_buckets_client())

输出

['BUCKET_1', 'BUCKET_2', 'BUCKET_3'……..]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程