我试图写Excel文件后,从S3桶的网址阅读与axios的帮助下,数据被写入文件,但它不是可读的格式。我想写的数据在适当的excel file format
,它被上传。
下面是我的代码:
axios({
url: 'https://example.com/1666960010753_Me%20Data.xlsx',
method: 'GET',
responseType: 'blob',
}).then((response) => {
const ostream = fs.createWriteStream(`./${filename}`);
ostream.write(response.data);
});
有人让我知道我做错了什么。
1条答案
按热度按时间pn9klfpd1#
首先,您的Excel数据表现在是公开的。不知道这是不是故意的,如果不是,请从代码示例中删除它。
现在到了这个问题。
您应该使用'arraybuffer'做为回应类型,而不是'blob'。This answer explains it really well why that is。
同样,你应该结束你的流。这表明流已经结束,没有数据应该并且可以被再次写入流。
数组缓冲区是一个二进制缓冲区,当你知道你将要得到什么数据时,最好的做法是为一个文件设置编码。
对于您的代码,它看起来如下所示: