En mi aplicación node.js, estoy usando gm (a graphicsmagick wrapper) y aws2js (amazon cli wrapper). El problema es que Amazon necesita saber la longitud del contenido para poder poner la transmisión en S3.obtener una longitud de contenido de la secuencia
estoy subiendo una imagen para mi aplicación, leer ese archivo mediante la creación de una corriente:
var fileStream=fs.createReadStream(file.path)
me pase ese archivo a GM, cambiar su tamaño y luego dicen que para transmitir ese archivo. entonces yo quiero poner esa corriente de AWS:
gm(fileStream, "some.png").
identify({bufferStream: true}, function(err, info) {
this.stream("png", function (err, stdout, stderr) {
if (err){console.log(err);cb(err);return;}
aws.S3.putStream(path, stdout, 'public-read', {'content-length': ?????, 'content-type': 'image/png'}, function (err, result) {
.....
}
});
});
});
El problema es que Amazon necesita saber la longitud de contenido (que no es la biblioteca) para poner la corriente. AWS no admite transmisiones fragmentadas.
¿Alguien sabe cómo puedo determinar la longitud del contenido de una secuencia? ¿O sería la única solución tmp escribirlo en el disco, leer el archivo como una secuencia y luego ponerlo en Amazon con la longitud del contenido del archivo temporal?
¿Alguna vez descubrió esto? Estoy tratando de hacer exactamente lo mismo ... – Bill
Bill; Yo guardo el resultado y obtengo el tamaño del mismo. Lamentablemente, no hay otra forma de hacerlo, porque Amazon necesita saber el tamaño y una secuencia es buena, una secuencia, sin longitud fija. – japrescott