Por alguna razón, no quiero compartir la URL pública (url sercet),
Mi flujo de trabajo es el siguiente:
El cliente envía una solicitud de API a mi servidor:
API: mywebsite.com/api/image_abc.jpg
Tengo el servidor Nodejs express para obtener el archivo de la url:
Por ejemplo: sercret_url.com/image_abc.jpg
Y luego, desde el contenido de la imagen de respuesta de Nodejs, envío el contenido de la imagen al cliente y lo muestro como image_abc.jpg
Miré a mi alrededor en stackoverflow, pero acabo de recibir una respuesta al leer el archivo del disco y enviarlo al cliente. Lo que quiero es simplemente redirigir el contenido de la imagen al cliente, no guardar el archivo en el disco.
Gracias.
Suponiendo que desea devolver el contenido de un archivo desde una determinada URL al cliente como búfer, esta es la solución que sugiero
Obtenga el archivo usando axios y devuelva el búfer a su cliente
const axios = require('axios'); let URL='some-valid-url' const response = await axios.get( URL, { responseType: 'arraybuffer' } ); const buffer = Buffer.from(response.data, 'utf-8'); res.status(200).send(buffer);En caso de que desee guardarlo en su servidor, puede usar fs de la siguiente manera para escribir el archivo en la carpeta de su elección
fs.writeFile(fileName, buffer, (err) => { if(!err) console.log('Data written'); });