[英]How to print buckets available?
我正在嘗試在 AWS 上打印可用的存儲桶但失敗了。 我在線嘗試了多個教程,但我cannot locate credentials
並且's3.ServiceResource' object has no attribute
錯誤。
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')
response = s3_resource.meta.client.list_buckets()
或者,堅持使用資源,您可以使用:
s3_resource = boto3.resource('s3')
for bucket in s3_resource.buckets.all():
# Do something with bucket
使困惑? 嘗試堅持一種方法。 客戶端直接匹配對 S3 進行的底層 API 調用,並且與所有其他語言相同。 Resource是一種更“Pythonic”的訪問資源的方式。 調用被轉換為客戶端 API 調用。 在確定所需的權限時,資源可能更具挑戰性,因為沒有與實際 API 調用的一對一映射。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.