我有一个字符串形式的svg 。我想将该字符串转换为文件并将其发送FormData到另一个 API。
我找到了一种工作方式,但包括在本地创建一个文件(使用fs),然后readStream从刚刚创建的文件创建一个。处理许多文件的速度非常慢,并且大多数时候都会导致超时。
fs.writeFile('file.svg', svgString, async () => {
const fr = fs.createReadStream('file.svg');
const formData = new FormData();
formData.append('media', fr);
const response = await Axios.post(route, formData, {...}
});
});
Run Code Online (Sandbox Code Playgroud)
这是我使用 Buffer 和 Readable 的(失败的)方法:
// Create readable from svg string
const b = Buffer.from(svgString, 'utf-8');
const r = Readable.from(b);
const formData = new FormData();
formData.append('media', fr);
const response = await Axios.post(route, formData, {...});
Run Code Online (Sandbox Code Playgroud)
此方法给出的结果与第一种方法不同。然后我从外部 API 收到错误。
问题是如何获得与第一种方法相同的结果,而不将本地文件写入磁盘。
提前致谢!