Отправка изображения с использованием данных формы через API-шлюз в функцию Lambda приводит к неверному файлу - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть лямбда-функция, написанная на Go , которая должна позволять загрузку файла изображения - через форму HTML / JavaScript и интеграцию API-шлюза - в корзину S3, всеопределено в шаблоне SAM .

Вот пример журнала выполнения лямбда-функции:

enter image description here

Сейчаспроблема в том, что для любых файлов JPEG или PNG я получаю искаженные результаты:

  • Размер файла результирующего изображения (то, что я получаю после анализа мультимедийного сообщения multipart) больше исходногонапример, размер файла: от 8 КБ (оригинал) до 12 КБ (сегмент S3).
  • Когда я сравниваю исходные файлы PNG или JPEG с результирующими файлами в сегменте S3 с hexdump, они почти выглядят одинаково (чтодолжен сказать: я сомневаюсь, что есть проблема с кодировкой base64).
  • Интересно, что для text/plain типа носителя эта настройка работает.

Я пытался выяснить, гдевещи ломаются и в настоящий момент мое предчувствиев конфигурации шлюза API что-то отсутствует.FWIW, я пробовал это, но без видимых изменений в поведении:

$ aws apigateway update-integration-response \
                 --rest-api-id XXX --resource-id XXX \
                 --http-method POST --status-code 200 \
                 --patch-operations op='replace',path='/contentHandling',value='CONVERT_TO_BINARY'`
...