Nodejs亚马逊上传使用Knox在断言错误时崩溃

时间:2011-10-18 21:15:18

标签: node.js upload amazon multipart knox-amazon-s3-client

我正在使用knox amazon上传器作为“代理”从Javascript上传切片文件。 但值得注意的是,有时候(遗憾的是有时因此我无法确切地确定错误)当response.statusCode不是200时,nodeJS会因异常而崩溃:

  

assert.js:93抛出新的assert.AssertionError({

     

在IncomingMessage中AssertionError:true == false   (http.js:1341:9)在IncomingMessage.emit(events.js:61:17)上   Socket.ondata上的HTTPParser.onMessageComplete(http.js:133:23)   (http:js:1231:22)在Socket._onReadable(net.js:683:27)上   IOWatcher.onReadable [作为回调](net.js:177:10)

有谁知道为什么会这样?有没有办法捕获该异常,避免服务器崩溃?

如果有帮助的话,这里有一些代码:

var request = client.request('PUT', '/' + params.fileName + '?partNumber=' +       params.partNumber + '&uploadId=' + params.uploadId, {
    'Content-Length': req.headers['content-length']
});

req.on('data', function(data){
    request.write(data, 'binary');
});
request.on('response', function(response) {
    if (response.statusCode== 200) { 
        console.log('Part '+ params.partNumber + ' inserted with etag: '+    response.headers.etag);
}
}).end();

1 个答案:

答案 0 :(得分:0)

这看起来是node.js中的错误< v0.5其中Socket.destroySoon()没有立即关闭套接字。

https://github.com/joyent/node/issues/1892