Я создал лямбду AWS в Python 2.7, который получает идентификатор, извлекает файл из s3 ведра и превращает его в base64:AWS API шлюз возвращает двоичный файл с ошибкой base64 браузера
response = s3.Object(s3_bucket, r['prefix'] + str(id)).get()
data = base64.b64encode(response['Body'].read())
return data
Все правильно , сгенерированный base64 проверяется и исправляется. Это jpeg.
Сейчас на апи шлюз:
- создать API
- добавить в Binary поддержка бинарного типа носителя: изображение/JPEG
- добавить метод GET к ресурсам.
- добавить метод ответа HTTP Status: 200 модели: изображение/JPEG => Empty
- добавить Content-Type: = изображение/JPEG в "ИНТЕГРАЦИЯ ответ" статус 200> "Body Mapping Шаблоны"
С это шаблоны:
$util.base64Decode($input.body)
Deploy API, тест ... и Browser сказал: изображение не может быть отображено, поскольку она содержит ошибки.
Я пробовал сотни различных версий без результата. Какая у меня ошибка?
Это не понятно, почему вы хотите, чтобы вернуть изображение в base64, но если у вас есть свои причины, не нужно добавить что-то вроде 'Content-Encoding: base64' чтобы браузер понимал, с чем он имеет дело? –
Функция лямбда возвращает изображение Base64. Я хочу, чтобы api gateway возвращает двоичный файл. Для этого я использую '$ util.base64Decode ($ input.body)', но не работает хорошо. – Amedeo
Мои извинения, я неправильно прочитал ваш вопрос раньше. –