Estoy usando Serverless Framework con AWS Lambda para cargar archivos/imágenes en S3. Los datos provienen de un formulario de datos de varias partes/formulario, por lo que obtengo los archivos en formato binario.
Ejemplo de solicitud POST del cliente REST (Insomnia)
Subir al código S3:
this.client .putObject({ Bucket: s3bucket, Key: s3path, Body: Buffer.from(data, 'binary'), ContentType: params.mimetype }) .promise();El problema es que los archivos o imágenes cargados en S3 están dañados:
La imagen "http://xxxxx.eu-west-3.amazonaws.com/xxx no se puede mostrar porque contiene errores.
Ya configuré binaryMediaTypes en mi configuración de archivos sin servidor para la puerta de enlace api:
apiGateway: { binaryMediaTypes: ['*/*'], },y lo mismo en la configuración de tipos de medios binarios de AWS API Gateway, configuro * / * cuando * / * significa todos los tipos de medios
Configuración de puerta de enlace API
¿Alguna vez te has encontrado con este problema?
content handling: passthroughHTTP Headers . Referir esto