проблема с загрузкой изображения из aws лямбды в корзину s3 через гнездо js - PullRequest
1 голос
/ 29 января 2020

Я пытаюсь создать REST API с использованием API Gateway и Lambda. Мне нужен клиент для загрузки изображения в форме вместе с другими полями через API Gateway в Lambda. Я использую Lambda Function Proxy Integrations. Я использую nest js и преобразовываю его в lambda. Он отлично работает на localhost, но когда я пытаюсь из lambda, он получает данные для других полей правильно. Но изображение повреждено, а его размер почти удваивается.

Вот мое гнездо js код:

Запрос поста контроллера:

@Post()
@UsePipes(ValidationPipe)
@UseInterceptors(FilesInterceptor('image'))

async addNews(@Body() NewsDataDTO:NewsDataDTO,@UploadedFiles() file){  

if(file[0]){
   NewsDataDTO.image =  await 
   this.imageUploadService.fileupload(file[0].
   buffer,uuid()+file[0].originalname,file[0].mimetype);

   const image=sharp(file[0].buffer);

   let newImage= await image.resize(200,200).toBuffer();

   NewsDataDTO.thumbnailImage =  await 
   this.imageUploadService.fileupload(newImage,uuid()+file[0].
   originalname,file[0].mimetype);
}  

и код imageUploadService здесь:

async fileupload(file: Buffer, urlKey: string, mimetype: any) {

const params = {
  Body: file,
  Bucket: 'bucketName',
  Key: urlKey,
  ContentType: mimetype,

};

const image=await s3
.putObject(params)
.promise();

return `https://bucketUrl/${urlKey}`
...