簡體   English   中英

AWS Lambda中的Boto3 S3列表對象拋出錯誤

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

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