Node.js knox s3图像检索

jbg*_*jbg 5 javascript download amazon-s3 node.js knox-amazon-s3-client

我正在尝试使用以下方法从节点中的s3检索图像:

app.get('/photos', function(req, res, next) {
var data = '';
s3.get('/tmp/DSC_0904.jpg').on('response', function(s3res){
    console.log(s3res.statusCode);
    console.log(s3res.headers);
    s3res.setEncoding('binary');
    s3res.on('data', function(chunk){
      data += chunk;
    });
    s3res.on('end', function() {
      res.contentType('image/jpeg');
      res.send(data);
    });
  }).end();
});
Run Code Online (Sandbox Code Playgroud)

我愿意接受为什么这不起作用的建议.

小智 3

我可以通过在结束事件回调中进行以下修改来下载图像:

s3res.on('end', function() {
    res.contentType('image/jpeg');
    res.write(data, encoding='binary')
    res.end()
});
Run Code Online (Sandbox Code Playgroud)

我遇到了与原始海报相同的问题。我怀疑,由于我们将传入缓冲区的编码设置为二进制,因此我们需要在输出流上执行相同的操作。经过一番研究,我发现 write 方法不将编码类型作为参数。