【问题标题】:Knox S3 - NodeJS/ExpressJS Error: socket hang upKnox S3 - NodeJS/ExpressJS 错误:套接字挂断
【发布时间】:2013-10-05 23:37:07
【问题描述】:

我在 Amazon S3 的 NodeJS 模块中遇到以下错误:Knox

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: socket hang up
    at SecurePair.error (tls.js:934:23)
    at CleartextStream.read [as _read] (tls.js:432:17)
    at CleartextStream.Readable.read (_stream_readable.js:320:10)
    at EncryptedStream.write [as _write] (tls.js:345:25)
    at doWrite (_stream_writable.js:219:10)
    at writeOrBuffer (_stream_writable.js:209:5)
    at EncryptedStream.Writable.write (_stream_writable.js:180:11)
    at write (_stream_readable.js:573:24)
    at flow (_stream_readable.js:582:7)
    at Socket.pipeOnReadable (_stream_readable.js:614:5)
    at Socket.EventEmitter.emit (events.js:92:17)

启用longjohn 后,我可以说错误是在从 Amazon S3 显示图像的路径上。

exports.image = function(req, res) {
    var type = req.params.type;
    var id = req.params.id;
    var file = req.params.file;
    var url = '/' + type + '/' + id + '/' + file;


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

如何处理错误,使服务器不会崩溃?

【问题讨论】:

  • 错误点在哪里?看起来它与您的 https 服务器有关。你能展示一下代码吗?
  • 启用 longjohn 后,错误是显示来自 Amazon S3 的图像。 :-(

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


【解决方案1】:

您很可能忘记向服务器套接字的'error' 事件添加处理程序。

堆栈不包含对您的代码的任何引用的原因是 node.js 的事件性质。每当事件触发时,堆栈都会从头开始重新启动。因此,调试异步调用有点困难。

您可以在开发过程中尝试使用longjohn

【讨论】:

  • 感谢longjohnrequire('longjohn'); 够吗?或者需要一些代码行来使用它。谢谢
  • 您只需要在主文件的开头要求它。然后,您的堆栈跟踪将变得更加有用。它会增加内存使用量并稍微降低您的服务器速度。
  • 我发现错误来自哪里,它在 Amazon S3 的 Knox S3 模块上
  • 亚马逊现在有一个支持 S3 的官方 node.js 模块,效果很好。 Knox 可能遇到的另一个问题是它不处理 HTTP 重定向:github.com/LearnBoost/knox/issues/178.
猜你喜欢
  • 2015-02-08
  • 2014-10-06
  • 2015-09-13
  • 2019-08-02
  • 2014-04-28
  • 2014-10-02
  • 2014-07-27
  • 2021-01-02
相关资源
最近更新 更多