Получите и отправьте файл multipart / form-data в AWS Lambda - PullRequest
1 голос
/ 03 февраля 2020

Я пытаюсь выполнить multipart/form-data POST, содержащий pdf-файл для AWS лямбда-функции, выполнить несколько проверок файла и затем POST-файл во внешний API.

I Я использую безсерверный фреймворк с node.js и плагином aws -lambda-multipart-parser для получения файла.

Загрузка файла с клиента в lambda работает, и Я могу напечатать содержимое буфера на консоль. Часть, которая не работает, это пересылка файла во внешний API.

Это моя текущая настройка axe ios для выполнения POST-запроса к внешнему API:

const formData = new FormData();
formData.append("file", file.content, file.filename);

const res = await axios.post(`https://external-api.com`, formData, {
  headers: { ...formData.getHeaders(), "Access-Control-Allow-Origin": "*" },
  params: {
    someParams: foo
  }
});

file.content на самом деле содержит буфер с содержимым файла, но когда я делаю запрос, внешний API возвращает ошибку, и запрос не выполняется ...

Интересно, что вся установка работает, когда я запускаю без сервера работать локально с sls offline. Это может указывать на наличие проблемы с настройкой API Gateway.

Некоторая дополнительная информация:

На основе инструкций от многокомпонентного плагина Я добавил двоичный тип данных в настройках шлюза API:

enter image description here

Это конфигурация конечной точки в AWS Шлюз:

enter image description here

Я также пробовал этот SO вопрос и AWS документацию , но они охватывают только то, как получить бинарный файл, а не как его отправить.

Можно ли получить и отправить файл в лямбде или это нужно решить по-другому?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...