У меня есть код nodejs, который загружает файлы в корзину S3. Я использовал веб-фреймворк koa, и ниже приведены зависимости:
"@types/koa": "^2.0.48",
"@types/koa-router": "^7.0.40",
"koa": "^2.7.0",
"koa-body": "^4.1.0",
"koa-router": "^7.4.0",
Ниже приведен пример кода моего маршрутизатора:
import Router from "koa-router";
const router = new Router({ prefix: '/' })
router.post('file/upload', upload)
async function upload(ctx: any, next: any) {
const files = ctx.request.files
if(files && files.file) {
const extension = path.extname(files.file.name)
const type = files.file.type
const size = files.file.size
console.log("file Size--------->:: " + size);
sendToS3();
}
}
function sendToS3() {
const params = {
Bucket: bName,
Key: kName,
Body: imageBody,
ACL: 'public-read',
ContentType: fileType
};
s3.upload(params, function (error: any, data: any) {
if (error) {
console.log("error", error);
return;
}
console.log('s3Response', data);
return;
});
}
Тело запроса отправляется как FormData.
Теперь, когда я запускаю этот код локально и нажимаю на запрос, файл загружается в мою корзину S3 и может быть просмотрен. В консоли размер файла отображается следующим образом: 32212">, который представляет собой правильный фактический размер файла.
Но когда я развертываю этот код как лямбда-функцию и нажимаю на запрос, я увидеть, что размер файла внезапно увеличился (скриншот журнала cloudwatch ниже). 51619">
Тем не менее этот файл загружается на S3, но проблема в том, что когда я открываю файл, он показывает следующую ошибку.
Я также попытался выяснить, сохраняется ли это поведение в автономном экземпляре aws. Но это не так. Таким образом, проблема возникает только тогда, когда код развертывается как лямбда-функция без сервера.
Я пытался использовать как почтальон, так и мое собственное приложение. Но проблема остается.
Я не знаю, пропустил ли я какую-либо конфигурацию при настройке лямбда-функции, которая обрабатывает такой сценарий ios.
Это беспрецедентная проблема, с которой я столкнулся и действительно хотел бы знать, сталкивался ли кто-либо еще с таким же раньше. Также я не могу отладить и выяснить, почему размер файла увеличивается. Я могу только предположить, что когда файл достигает службы, для файла выполняется какая-то кодировка / заполнение.