Я работаю с Multer адаптером для NestJS паром этой инструкции .
Он отлично работает в моей среде разработки (Работает вmachine!)
После развертывания приложения в AWS ElasticBeanstalk все загруженные файлы имеют почти двойной размер, и данные были повреждены. Например, изображение jpg не читается.
Вот код для моего контроллера
@Post('image')
@UseInterceptors(FileInterceptor('image', {}))
public async upload(@UploadedFile() image) {
console.log(image);
...
}
на моей машине. Я получил следующие выходные данные
{ fieldname: 'image',
originalname: 'IMG-20171129-WA0070.jpg',
encoding: '7bit',
mimetype: 'image/jpeg',
buffer: <Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 01 00 01 00 00 ff db 00 43 00 06 04 05 06 05 04 06 06 05 06 07 07 06 08 0a 10 0a 0a 09 09 0a 14 0e 0f 0c ... >,
size: 94601 }
Обратите внимание, чтобуфер имеет размер 94601 байт.
на AWS ElasticBeanstalk Я получил следующие значения:
{ fieldname: 'image',
originalname: 'IMG-20171129-WA0070.jpg',
encoding: '7bit',
mimetype: 'image/jpeg',
buffer: <Buffer ef bf bd ef bf bd ef bf bd ef bf bd 00 10 4a 46 49 46 00 01 01 00 00 01 00 01 00 00 ef bf bd ef bf bd 00 43 00 06 04 05 06 05 04 06 06 05 06 07 07 06 ... >,
size: 169633 }
Вот где буфер имеет 169633 байти «поврежденные» данные.
Обе машины работают на 64-битной ОС. и запрос CURL одинаков для обоих:
curl -X POST \
https://api.lavembebe.com.br/lists/2/photos/image \
-H 'Accept-Encoding: gzip, deflate' \
-H 'Cache-Control: no-cache' \
-H 'Connection: keep-alive' \
-H 'Content-Length: 94823' \
-H 'Content-Type: multipart/form-data' \
-F 'image=@/path/IMG-20171129-WA0070.jpg'
Почему это происходит? как я могу это исправить?