错误:在TLSWrap.onStreamRead上读取ECONNRESETinternal / stream_base_commons.js:205:27上传文件以存储i S3

问题描述

当我尝试上传文件并将其存储到s3位置时,出现错误

Error: read ECONNRESET
    at TLSWrap.onStreamRead (internal/stream_base_commons.js:205:27)

这是版本问题还是bug?

var express = require('express'),aws = require('aws-sdk'),bodyParser = require('body-parser'),multer = require('multer'),multerS3 = require('multer-s3');

aws.config.update({
    secretAccessKey: 'xxxxxxxxxxxxxxxxxxxxxxxxx',accessKeyId: 'xxxxxxxxxxxxxxxx',region: 'us-east-1'
});

var app = express(),s3 = new aws.S3();

app.use(bodyParser.json());

var upload = multer({
    storage: multerS3({
        s3: s3,bucket: 'xxxxx',key: function (req,file,cb) {
            console.log(file);
            cb(null,file.originalname); //use Date.Now() for unique file keys
        }
    })
});

//open in browser to see upload form
app.get('/',function (req,res) {
    res.sendFile(__dirname + '/index.html');
});

//used by upload form
app.post('/upload',upload.array('upl',1),res,next) {
    res.send("Uploaded!");
});

app.listen(3000,function () {
    console.log('Example app listening on port 3000!');
});

并索引html文件

<form method="post" enctype="multipart/form-data" action="/upload">
        <input type="file" name="upl"/>
        <input type="submit"/>
</form>

和软件包版本

  "dependencies": {
    "aws-sdk": "^2.753.0","body-parser": "^1.19.0","express": "^4.17.1","multer": "^1.4.2","multer-s3": "^2.9.0"
  }

我的节点和npm版本n是

节点是:12.16.1 npm是:6.13.4

请任何人解决这个问题...

解决方法

此问题可能与this bug in NodeJS有关。您可以尝试做的一件事是将res.end();res.sendFile(...)通话之后。如果那不起作用,则可能需要实现一个函数来调用流程uncaughtException,或者等待以查看Node社区最终如何解决该问题。