从Amazon S3直接将文件流式传输到客户端(Node.js)

时间:2014-10-11 07:37:32

标签: node.js amazon-s3 sails.js

我正在使用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)需要本地路径(在我们的例子中是服务器路径)

1 个答案:

答案 0 :(得分:1)

GitHub问题包含对此问题的“官方”回答:https://github.com/andrewrk/node-s3-client/issues/53