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)

これは、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();
4

1 に答える 1

0

ストリームに対してドレイン イベントが発生する可能性があるため、他のストリームが読み取れる速度よりも速く書き込んでいる可能性があります。これを処理するパイプを使用する必要があります。

s3res.pipe(response);

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

これは nodejs のドキュメントからのものです。このメソッドは、読み取り可能なストリームからすべてのデータを引き出し、指定された宛先に書き込み、フローを自動的に管理して、宛先が高速で読み取り可能なストリームに圧倒されないようにします。

于 2013-12-30T07:33:35.660 に答える