And*_*osa 6 javascript ajax node.js
我正在构建一个 Node 包,需要根据 url 下载一些文件。但是,我不想将它们直接保存到文件系统中。相反,我需要在保存到磁盘之前对它们进行预处理。因此,我想将文件内容保存在缓冲区中。这怎么能用 pipe() 完成?
当然,我可以保存一个临时文件,然后打开该文件,处理它并保存结果,但这会给磁盘带来不必要的读/写。
这些文件通常很小,并且是 .txt 或 .zip 文件,因此将它们保存在内存中不会带来任何危害。
目标之一是当下载的文件是 .zip 时,仅查找和提取伪装的文件。使用 Adm-Zip 我可以做到这一点,但必须传递一个缓冲区。
事先谢谢你。
https.get(url, (res) => {
const data = [];
res.on('data', (chunk) => {
data.push(chunk);
}).on('end', () => {
let buffer = Buffer.concat(data);
// Do something with the buffer
});
}).on('error', (err) => {
console.log('download error:', err);
});
Run Code Online (Sandbox Code Playgroud)
您可以使用节点获取库。存储库自述文件中的代码示例:
// if you prefer to cache binary data in full, use arrayBuffer()
fetch('https://assets-cdn.github.com/images/modules/logos_page/Octocat.png')
.then(res => res.arrayBuffer())
.then(buffer => { /* do whatever you want with buffer */ })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7678 次 |
| 最近记录: |