【问题标题】:Error: read ECONNRESET ExpressJS and Amazon S3错误:读取 ECONNRESET ExpressJS 和 Amazon S3
【发布时间】:2013-09-09 10:49:52
【问题描述】:

我在 ExpressJS Web 应用程序中使用 Knox S3 插件来显示在 Amazon S3 中上传的图像。显示图像时,有时会出现以下错误。我不知道错误。是什么导致了错误?

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: read ECONNRESET
    at errnoException (net.js:884:11)
    at TCP.onread (net.js:539:19)

这是我从 Amazon S3 渲染图像的方式:

var data = '';
client.get(url).on('response', function(s3res) {
    s3res.setEncoding('binary');
    s3res.on('data', function(chunk){
        data += chunk;
    });
    s3res.on('end', function() {
        res.contentType('image/jpg');
        res.write(data, encoding='binary');
        res.end();
    });
}).end();

【问题讨论】:

    标签: node.js express amazon-s3 knox-amazon-s3-client


    【解决方案1】:

    由于流可能发生耗尽事件,因此您的写入速度可能比其他流能够读取的速度快。您应该使用为您处理此问题的管道:

    s3res.pipe(response);
    

    http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options

    这是来自 nodejs 文档: 此方法从可读流中提取所有数据,并将其写入提供的目的地,自动管理流,以便目的地不会被快速可读的流淹没。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-13
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      • 2020-11-16
      • 1970-01-01
      • 2019-09-12
      相关资源
      最近更新 更多