我正在使用sails.js,並試圖將文件從Amazon s3服務器直接傳輸到客戶端。將文件直接從Amazon S3(Node.js)流式傳輸到客戶端
要連接到S3,我使用s3模塊:https://www.npmjs.org/package/s3 此模塊提供的功能如client.downloadFile(params)
和client.downloadBuffer(s3Params)
。
我當前的代碼如下所示:
var view = client.downloadBuffer(params);
view.on('error', function(err) {
cb({success: 0, message: 'Could not open file.'}, null);
});
view.on('end', function(buffer) {
cb(null, buffer);
});
我使用一個控制器趕上這個緩衝區:
User.showImage(params , function (err, buffer){
// this is where I can get the buffer
});
是否有可能流這一數據爲圖像文件(使用buffer.pipe(res)
沒有按當然不行)。但是有沒有類似於完全避免首先將文件保存到服務器磁盤?
另一種選擇client.downloadFile(params)
需要一個本地路徑(即在本例中的服務器路徑)
你需要找出其中S3鏈接對應於您的數據,通常採用'bucketname.s3.amazonaws.com/path/to/file'的形式。然後從那裏你可以直接訪問公共文件,或者你可以實現訪問私人文件的方式(希望有人知道哪裏有文檔) – 2014-10-11 07:39:42
@ZekeSonxx我已經知道路徑。我其實試圖掩蓋路徑 – pewpewlasers 2014-10-11 07:44:31