2014-10-11 199 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

回答

相关问题