问题描述
我设置了简单的 Node.js 服务器,它应该从 NextCloud 存储上传和获取文件。 我正在通过 webdav 包从我的服务器连接到 NextCloud。
如果要说从 NextCloud 获取文件,它运行良好。我在 NextCloud 中的远程文件上创建可读流并将数据返回给客户端。
client.createReadStream
但是当我尝试将更大的文件从客户端发送到我的 Node.js 服务器并将此文件上传到 NextCloud 时,我遇到了服务器错误 #400。我在 NextCloud 中的远程文件上创建 writeStream,并使用来自客户端的文件重写/上传此文件。
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 (将#修改为@)