我正在使用sails.js,并且正在尝试将文件从Amazon s3服务器直接流式传输到客户端。
要连接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)
需要本地路径(在我们的例子中是服务器路径)