Python 如何打印可用的存储桶?
我正在尝试在AWS上打印可用的存储桶,但失败。我在线尝试了多个教程,我会得到Python 如何打印可用的存储桶?,python,amazon-web-services,amazon-s3,Python,Amazon Web Services,Amazon S3,我正在尝试在AWS上打印可用的存储桶,但失败。我在线尝试了多个教程,我会得到找不到凭据和的's3.ServiceResource'对象没有属性错误 s3 = boto3.resource('s3',aws_access_key_id = "Random",aws_secret_access_key = "Secret" ) client = s3.client('s3') response = client.list_buckets() print(response) 你能试试吗 for bu
找不到凭据
和的's3.ServiceResource'对象没有属性
错误
s3 = boto3.resource('s3',aws_access_key_id = "Random",aws_secret_access_key = "Secret" )
client = s3.client('s3')
response = client.list_buckets()
print(response)
你能试试吗
for bucket in s3.buckets.all():
print(bucket.name)
问题可能是因为您将
s3
定义为资源:
s3 = boto3.resource('s3')
但您尝试将其用作客户机:
client = s3.client('s3')
那不行。如果需要客户端,请使用以下内容创建一个客户端:
s3_client = boto3.client('s3')
或者,您可以从资源中提取客户端:
或者,坚持使用资源,您可以使用:
s3_resource = boto3.resource('s3')
for bucket in s3_resource.buckets.all():
# Do something with bucket
困惑?试着坚持一种方法Client直接匹配对S3进行的底层API调用,与所有其他语言相同Resource是一种更为“Pythonic”的资源访问方式。这些调用被转换为客户端API调用。在计算所需的权限时,资源可能更具挑战性,因为没有到实际API调用的一对一映射。您是否在AWS中创建了服务帐户并在IAM中添加了权限?是的。我成功地更新了bucket并上传了django项目中的文件,但无法在SukumarRdjfcan读取它们。请发布错误的完整堆栈跟踪?旁注:不建议在代码中放入访问密钥和密钥。相反,如果代码在AmazonEC2实例上运行,只需将IAM角色分配给该实例即可。如果代码在您自己的计算机上运行,请使用AWS CLI
AWS configure
命令将凭据存储在文件中。
s3_resource = boto3.resource('s3')
for bucket in s3_resource.buckets.all():
# Do something with bucket