Estoy descargando una imagen (archivo .png) en mi servidor express desde un depósito s3 usando aws-sdk para el nodo y luego escribiéndola en el disco usando fs.writeFileSync . el problema es que cuando trato de ver la imagen en mi computadora, dice: is appears that we dont support this file format. Revisé las propiedades de las imágenes descargadas y sus 37,2 KB, por lo que significa que se devolvió algo.
¿No es esta la forma correcta de descargar la imagen?
aquí está mi código:
function downloadFile(fileKey) { const downloadParams = { Key: fileKey, Bucket: bucketName, }; return s3.getObject(downloadParams).promise(); } router.get("/getImage", async (req, res) => { try { let image= await downloadFile(`${req.query.imageID}.png`); fs.writeFileSync(`Images/${req.query.image}.png`, image); res.status(200).send(); } catch (e) { console.log(e); res.status(500).send(e); } });en su código, asegúrese de pasar el parámetro correcto a fs.writeFileAsync. como puedo ver la plot en lugar de la image .
segundo, asegúrese de descargar la imagen directamente desde el s3 y asegúrese de poder verla en su computadora; de lo contrario, debe agregar el 'Content-Type': 'image/png' mientras carga la imagen en el s3.
Mi error fue que escribí el s3 result en el disco ( image ) y no el Body del result . este es el codigo correcto:
fs.writeFileSync(`Images/${req.query.taskID}-plot.png`, image.Body);