olsun, ben gm (a graphicsmagick wrapper) ve aws2js (amazon cli wrapper) kullanıyorum. Sorun, Amazon'un içerik uzunluğunu bilmesi ve böylece akışı S3'e yerleştirmem gerekiyor. ,Bir streamin içerik uzunlukta benim node.js uygulamasında
var fileStream=fs.createReadStream(file.path)
Ben gm için bu dosyayı geçmesi yeniden boyutlandırmak ve daha sonra bu dosyayı akışı söylemek: Uygulamamda resim yükleyerek ediyorum
, bir akışı oluşturarak bu dosyayı okuyun. Sonra çenesinde akış sağlayan koymak istiyorum:
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) {
.....
}
});
});
});
sorun Amazon akışı koymak için içerik uzunluğunu (onun değil kütüphane) bilmelidir olmasıdır. AWS yığın akışları desteklemiyor.
kimse bir akışın içerik uzunluğunu belirlemek nasıl biliyor mu? Ya da tek çözüm, diske tmp yazmak, dosyayı bir akış olarak okumak ve daha sonra temp dosyasının içerik uzunluğuna dikkat etmektir.
Hiç bu anlamaya mı? Ben tam olarak aynı şeyi yapmaya çalışıyorum ... – Bill
Bill; Sonucunu tamponluyorum ve büyüklüğünü aldım. Ne yazık ki, bunu yapmanın başka bir yolu yoktur, çünkü Amazon'un boyutu bilmek zorundadır ve bir akış da iyi - bir akış - sabit uzunlukta değil. – japrescott