Я пытаюсь выполнить 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](https://i.stack.imgur.com/luijt.png)
Это конфигурация конечной точки в AWS Шлюз:
![enter image description here](https://i.stack.imgur.com/xEqoU.png)
Я также пробовал этот SO вопрос и AWS документацию , но они охватывают только то, как получить бинарный файл, а не как его отправить.
Можно ли получить и отправить файл в лямбде или это нужно решить по-другому?