0

Я пытаюсь получить изображение из своего ведра S3 и вернуть его для использования в моем API-шлюзе. Разрешения установлены правильно.Lambda получить изображение из s3

import boto3 

s3 = boto3.resource('s3') 

def handler(event, context): 
    image = s3.meta.client.download_file('mybucket', 'email-sig/1.png', '/tmp/1.png') 
    return image 

однако я получаю нулевой возврат и не могу понять, как получить изображение. Это правильный подход, и почему он не возвращает мой образ.

ответ

1

Вы загружаете изображение файл который находится в /tmp/1.png. То, что вы возвращаете, - это возвращаемое значение download_file(), которое, кажется, возвращает null. Какой тип данных ожидает ваш шлюз API?

+0

Я установил API для возврата типа 'image/png' – user3024827

+0

Для чтения файла и использования образа/png вам нужно использовать какую-то библиотеку обработки изображений (например, ImageMagick, поставляемую с Node.js Lambda) , – helloV

+0

Чтобы прояснить ответ helloV ... Возвращаемое значение 'download_file()' НЕ является самим изображением. Изображение было бы загружено в '/ tmp/1.png', поэтому вы должны вернуть содержимое этого файла (а не возвращаемое значение). –

Смежные вопросы