错误:读取ECONNRESET ExpressJS和Amazon S3。

4

我在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)

这是我从亚马逊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();
1个回答

0

由于流可能会发生排水事件,因此您可能正在编写比其他流能够读取更快的速度。您应该使用处理此问题的管道:

s3res.pipe(response);

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

这是来自 Node.js 文档: 该方法将可读流中的所有数据提取出来,并将其写入提供的目标,自动管理流量,以便目标不会被快速可读流淹没。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接