Я пытаюсь создать 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}`