如何从后端上传文件到另一个后端?

How to upload file from the back-end to another back-end?

我正在尝试将文件从另一个后端上传到当前存在的 API。

为此,我试图复制前端正在做的事情。 创建 FormData 然后将其发送到 API.

但是请求好像挂了... 如果我尝试复制请求 express 将控制台记录错误

Error: Request aborted
    at IncomingMessage.<anonymous> (C:\Users\TCP_BCP\node_modules\formidable\lib\incoming_form.js:122:19)
    at IncomingMessage.emit (events.js:314:20)
    at IncomingMessage.EventEmitter.emit (domain.js:506:15)
    at abortIncoming (_http_server.js:533:9)
    at socketOnEnd (_http_server.js:549:5)
    at Socket.emit (events.js:326:22)
    at Socket.EventEmitter.emit (domain.js:483:12)
    at endReadableNT (_stream_readable.js:1241:12)

我知道如果我尝试执行新请求,旧请求可能会中止。

但是为什么请求会挂起?目标文件较小(500kb +-)。

在前端会用到 $(".form").ajaxSubmit

在后端,我正在尝试使用 FormData 创建表单。

有什么问题吗?

所以问题出在 headers。 强大的其他 API 会在不为 axios 传递 FormData headers 的情况下挂起。

下面的代码让我成功地将文件上传到另一个 API。

      const data = await fs.readFile(zipPath);
      const form = new FormData();
      form.append("file", data, zipName);
      const headers = form.getHeaders();
      Axios.defaults.headers.cookie = cookies;
      await Axios({
        method: "POST",
        url: endpoint,
        headers: {
          ...headers,
          cookie: cookies,
        },
        data: form,
      });