Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何打印可用的存储桶?_Python_Amazon Web Services_Amazon S3 - Fatal编程技术网

Python 如何打印可用的存储桶?

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

我正在尝试在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 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