如何解决使用 node-fetch 套接字上传文件在第二次尝试后挂断
我目前正在尝试使用 Node.js 中的 node-fetch 将文件上传到 AWS S3。在第一次尝试时,操作成功完成。但是在第二次尝试时,插座挂断了。错误是:
Error: FetchError: request to https://s3.ap-southeast-1.amazonaws.com/ failed,reason: socket hang up
at ClientRequest.<anonymous> (C:\Users\project\node_modules\node-fetch\lib\index.js:1461:11)
at ClientRequest.emit (events.js:323:22)
at TLSSocket.socketOnEnd (_http_client.js:460:9)
at TLSSocket.emit (events.js:323:22)
at endReadableNT (_stream_readable.js:1204:12)
at processTicksAndRejections (internal/process/task_queues.js:84:21)
代码:
const readFile = await fs.promises.readFile(path);
for (const [key,value] of Object.entries(credentials.params)) {
form.append(key,value);
}
form.append("file",readFile);
const upload = await fetch(credentials.endpoint_url,{
method: "POST",body: form
});
我猜测问题与文件中的垃圾收集或文件描述符内容有关,或者连接未正确关闭但我找不到任何解决方法。无论如何,该函数是在 express 框架内执行的。所以基本上当端点被击中时,它调用了该函数,正如我上面提到的,在第一次尝试时它成功完成,但在第二次尝试时没有成功。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。