如何将文件下载到Node.js中的缓冲区?

时间:2018-07-31 17:16:00

标签: javascript node.js ajax

我正在构建一个Node软件包,需要下载给定URL的一些文件。但是,我不想直接将它们保存到文件系统中。相反,我需要先对其进行预处理,然后再保存到磁盘中。因此,我想将文件内容保存在缓冲区中。怎么用pipe()完成?

当然,我可以保存一个临时文件,然后打开该文件,对其进行处理并保存结果,但这会给磁盘带来不必要的读取/写入。

文件通常较小,为.txt或.zip文件,因此将它们保存在内存中不会带来任何危害。

目标之一是在下载的文件是.zip时仅查找和提取伪装的文件。使用Adm-Zip我可以做到这一点,但必须传递一个Buffer。

事先想好你

2 个答案:

答案 0 :(得分:2)

<form>
  <input type="submit" formaction="/one" value="Submit To URL One">
  <input type="submit" formaction="/two" value="Submit To URL Two">
</form>

答案 1 :(得分:1)

您可以使用node-fetch库。存储库自述文件中的代码示例:

// if you prefer to cache binary data in full, use buffer()
// note that buffer() is a node-fetch only API

fetch('https://assets-cdn.github.com/images/modules/logos_page/Octocat.png')
    .then(res => res.buffer())
    .then(buffer => { /* do whatever you want with buffer */ })