Я использую архитектуру шлюза API, API шлюза закодирован в экспрессе, а микросервис, который я вызываю, создается с использованием Koa.
Я пытаюсь отправить несколько файлов, закодированных в base64, на бэкэнд, без парсера тела на шлюзе, я получаю ошибку Payload Too Large 413
, поэтому после ее добавления я получаю эту ошибку: Error: MultipartParser.end(): stream ended unexpectedly: state = START_BOUNDARY
. Если я удалю тело коа, я снова получаю сообщение об ошибке Payload Too Large 413
. Я подозревал, что ошибка, вероятно, связана с использованием body-parser с koa-body. Запрос от внешнего интерфейса отправляется через axios POST, а значения находятся в FormData.
Это код koa-body в микросервисе:
.use(
koaBody({
multipart: true,
formidable: {
maxFieldsSize: 50 * 1024 * 1024,
maxFileSize: 50 * 1024 * 1024
}
})
)
РЕДАКТИРОВАТЬ: Возможно, это не ясно из вопроса, но файлы отправляются не как файлы, а как строки Base64. EDIT2: после некоторых исследований я обнаружил, что проблема может быть даже в прокси-сервере API шлюза, который, как я обнаружил, имел некоторые проблемы с обработкой составных форм (https://github.com/villadora/express-http-proxy/issues/127).