javascript - querystring - url parse js
cómo cargar una imagen de url en búfer en nodejs (3)
Intenta configurar la solicitud de esta manera:
var request = require(''request'').defaults({ encoding: null });
request.get(s3Url, function (err, res, body) {
//process exif here
});
Establecer la encoding
en null
hará que la solicitud genere un búfer en lugar de una cadena.
Soy nuevo en nodejs y estoy intentando configurar un servidor donde obtengo la información exif de una imagen. Mis imágenes están en S3, así que quiero poder simplemente ingresar la url de s3 como parámetro y tomar la imagen.
Estoy utilizando el proyecto ExifImage a continuación para obtener la información de Exif y de acuerdo con su documentación:
"En lugar de proporcionar un nombre de archivo de una imagen en su sistema de archivos, también puede pasar un búfer a ExifImage".
¿Cómo puedo cargar una imagen en el búfer en el nodo desde una url para poder pasarla a la función ExifImage?
Proyecto ExifImage: https://github.com/gomfunkel/node-exif
¡Gracias por tu ayuda!
Pude resolver esto solo después de leer esa encoding: null
se requiere encoding: null
y se la proporcioné como un parámetro para solicitar.
Esto descargará la imagen de la URL y producirá un búfer con los datos de la imagen.
Usando la biblioteca de solicitudes -
const request = require(''request'');
let url = ''http://website.com/image.png'';
request({ url, encoding: null }, (err, resp, buffer) => {
// Use the buffer
// buffer contains the image data
// typeof buffer === ''object''
});
Nota: omitiendo la encoding: null
resultará en una cadena inutilizable y no en un búfer. Buffer.from no funcionará correctamente también.
Esto fue probado con el Nodo 8
Usa la biblioteca de request .
request(''<s3imageurl>'', function(err, response, buffer) {
// Do something
});
Además, node-image-headers pueden ser de tu interés. Parece que toma un flujo, por lo que puede que ni siquiera tenga que descargar la imagen completa de S3 para procesar los encabezados.
Actualizado con la firma de devolución de llamada correcta.