[英]Boto3 S3 list object throwing error in AWS lambda
lambda中的代碼:
import boto3
def lambda_handler(event, context):
s3_client = boto3.resource('s3')
mybucket = s3_client.Bucket('bucket-name')
for object in mybucket.objects.all():
print(object)
for key in s3_client.list_objects(Bucket='bucket-name')['Contents']:
print(key['Key'])'
第一個“ for”塊列出存儲桶中的所有鍵,但是第二個“ for”塊引發以下錯誤。
's3.Service Resource' object has no attribute 'list_objects' : AttributeError
根據http://boto3.readthedocs.io/en/latest/reference/services/s3.html#S3.Client.list_buckets,這沒有任何意義。 關於可能是什么問題的任何提示? 我使用了python 2.7和python 3.6
boto3服務資源與舊的boto庫的服務客戶端不同。 顯然您正在混合兩者的文檔。
客戶端是低級客戶端,只是將AWS API包裝為python基本數據類型。 所有服務在boto3中都有一個可用的客戶端。
資源
資源表示與Amazon Web Services(AWS)的面向對象的接口。 與服務客戶端進行的原始低級調用相比,它們提供了更高級別的抽象。
resource = boto3.resource('s3')
客戶端
客戶端為AWS提供了一個低級接口,其方法與服務API的映射接近1:1。 客戶端支持所有服務操作。 客戶端是從JSON服務定義文件生成的。
client = boto3.client('s3')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.