在我的node.js應用程序中,我使用的是gm (a graphicsmagick wrapper)和aws2js (amazon cli wrapper)。問題是亞馬遜需要知道內容長度,以便我可以將流傳輸到S3上。獲取流的內容長度
我的圖片上傳到我的應用程序,通過創建一個流中讀取該文件:
var fileStream=fs.createReadStream(file.path)
我傳遞文件,以通用,調整其大小,然後告訴它流該文件。然後,我希望把他們流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) {
.....
}
});
});
});
的問題是,亞馬遜需要知道的內容長度(它不是庫)放流。 AWS不支持分塊流。
有誰知道我怎麼能確定一個流的內容長度?或者唯一的解決方案是將tmp寫入磁盤,將文件作爲流讀取,然後將其與temp文件的內容長度一起放入amazon中?
你有沒有想過這個?我正在嘗試做同樣的事情...... – Bill 2012-08-07 23:48:00
Bill;我緩衝結果並獲得它的大小。可悲的是,沒有其他的方法可以做到這一點,因爲亞馬遜需要知道尺寸和流是否合適 - 流 - 沒有固定的長度。 – japrescott 2012-08-13 12:00:42