Estoy tratando de cambiar el tamaño de la imagen cargada desde S3 usando @aws-sdk/v3 en la API de Node.js.
Primero, obtengo el objeto (imagen) de S3 como se muestra aquí: https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascriptv3/example_code/s3/src/s3_getobject.ts
... const params = { Bucket: AWS_BUCKET_NAME, Key: key } const data = await s3.send(new GetObjectCommand(params)) console.log(` >> Success, bucket returned:`, data) // Log correctlyLuego trato de cambiar el tamaño de los datos (imagen):
const convert = sharp(data).resize(size, size).webp()Pero arroja:
>> data.type: object (node:35583) UnhandledPromiseRejectionWarning: Error: Input file is missing ...Y no estoy seguro de cómo debo volver a cargarlo.
¿Qué estoy haciendo mal?
Creo que el constructor sharp acepta un búfer, pero lo que le estás pasando es la respuesta completa de la solicitud del SDK. En su lugar, intente pasar data.Body a sharp fn de esta manera:
const convert = sharp(data.Body).resize(size, size).webp();