2014-10-11 197 views
2

我正在使用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)需要一個本地路徑(即在本例中的服務器路徑)

+0

你需要找出其中S3鏈接對應於您的數據,通常採用'bucketname.s3.amazonaws.com/path/to/file'的形式。然後從那裏你可以直接訪問公共文件,或者你可以實現訪問私人文件的方式(希望有人知道哪裏有文檔) – 2014-10-11 07:39:42

+1

@ZekeSonxx我已經知道路徑。我其實試圖掩蓋路徑 – pewpewlasers 2014-10-11 07:44:31

回答

相關問題