Я пытаюсь получить изображение из своего ведра 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
однако я получаю нулевой возврат и не могу понять, как получить изображение. Это правильный подход, и почему он не возвращает мой образ.
Я установил API для возврата типа 'image/png' – user3024827
Для чтения файла и использования образа/png вам нужно использовать какую-то библиотеку обработки изображений (например, ImageMagick, поставляемую с Node.js Lambda) , – helloV
Чтобы прояснить ответ helloV ... Возвращаемое значение 'download_file()' НЕ является самим изображением. Изображение было бы загружено в '/ tmp/1.png', поэтому вы должны вернуть содержимое этого файла (а не возвращаемое значение). –