首页 > 解决方案 > 得到(node.js 库)无法在​​ FormData 中上传双工流

问题描述

我试图使用 got 从远程 URL 获取文件并将其上传到不同的 url,而无需先将其保存到磁盘。那不起作用,我得到了一个不起眼的RequestError. 我做了一些探索,发现如果我使用通过简单转换流的读取流,我会得到同样的错误。有人可以给我一个指示出了什么问题吗?是我做错了什么还是图书馆不支持这个?如果是后者,是不是理论上可以实现?我尝试在 axios 中做同样的事情,它似乎正在工作


// working:

const readStream = fs.createReadStream("file.txt");
const form = new FormData();
form.append("file", readStream);
got.post("https://destination.url", {
  body: form
});


// not working:
const remoteFileStream = got.stream("https://remote-file.url")
const form = new FormData();
form.append("file", remoteFileStream);
got.post("https://destination.url", {
  body: form
});


// not working:

const readStream = fs.createReadStream("file.txt");
const transformStream = new Transform({
  transform(chunk, encoding, callback) {
    callback(null, chunk);
  },
});
const form = new FormData();
form.append("file", readStream.pipe(transformStream));
got.post("https://destination.url", {
  body: form
});



标签: javascriptnode.jsmultipartform-dataform-datanodejs-stream

解决方案


推荐阅读