簡體   English   中英

如何打印可用的桶?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM