无法从客户端上传文件到nextcloud

问题描述

我设置了简单的 Node.js 服务器,它应该从 NextCloud 存储上传获取文件。 我正在通过 webdav 包从我的服务器连接到 NextCloud。

如果要说从 NextCloud 获取文件,它运行良好。我在 NextCloud 中的远程文件上创建可读流并将数据返回给客户端。

client.createReadStream

如果我上传文件很少,大约 10kb。一切正常。

但是当我尝试将更大的文件从客户端发送到我的 Node.js 服务器并将此文件上传到 NextCloud 时,我遇到了服务器错误 #400。我在 NextCloud 中的远程文件上创建 writeStream,并使用来自客户端的文件重写/上传文件

这是在NextCloud上传文件函数代码

  uploadFile = async (req: Request,res: Response): Promise<void> => {
    const busboy = new Busboy({
      headers: req.headers
    });

    busboy.on('file',(fieldname,file,filename,encoding,mimetype) => {
      const writeStream = nextCloudClient.createWriteStream(filename);
      file.pipe(writeStream);

      writeStream.on('end',() => {
        res.send({'msg': 'Done'});
      });

      eos(file,(err) => {
          if (err) return console.log('Read stream had an error or closed early',err);
          console.log('Read stream has ended');
      });

      eos(writeStream,(err) => {
          if (err) return console.log('Write stream had an error or closed early',err);
          console.log('Write stream has ended');
      });

    });

    req.pipe(busboy);

  }

这是我在控制台收到的:

Write stream had an error or closed early Error: Invalid response: 400 Bad Request
    at Object.handleResponseCode (D:\Andersen Lab\a-music\backend\video-service\node_modules\webdav\dist\node\response.js:13:19)
    at D:\Andersen Lab\a-music\backend\video-service\node_modules\webdav\dist\node\operations\createStream.js:80:55
    at processticksAndRejections (internal/process/task_queues.js:93:5) {
  status: 400

有人可以帮我解决这个问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)