【问题标题】:Streaming files directly to Client from Amazon S3 (Node.js)将文件从 Amazon S3 (Node.js) 直接流式传输到客户端
【发布时间】:2014-12-06 09:11:47
【问题描述】:

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

【问题讨论】:

  • 您需要确定 S3 链接指向您的数据的位置,通常采用 bucketname.s3.amazonaws.com/path/to/file 的形式。然后从那里您可以直接访问公共文件,或者您可以实现一种访问私有文件的方式(希望有人知道那里有相关文档)
  • @ZekeSonxx 我已经知道路径了。我实际上是在尝试掩盖路径

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


【解决方案1】:

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

【讨论】:

  • 是的,我也回复了你的回复。
猜你喜欢
  • 2019-04-26
  • 1970-01-01
  • 2015-11-29
  • 2017-07-23
  • 1970-01-01
  • 2022-09-25
  • 1970-01-01
  • 1970-01-01
  • 2013-07-09
相关资源
最近更新 更多