node.js, 获取 zip 文件并将其解压缩到 ram
node.js, fetch a zip file and unzip it to ram
我需要帮助,如何获取 zip 文件并将其解压缩到内存,或者将其写入硬盘。
样本url
var http = require("http");
var fs = require("fs");
var url = "http://www.caltrain.com/Assets/GTFS/caltrain/Caltrain-GTFS.zip"
var file = fs.createWriteStream("./file.zip");
http.get(url, (res) => {
var test = res.pipe(file);
console.log("it's finished")
console.log(test)
})
我不确定 asycnc-api 是如何工作的,createWriteStream 是否等待整个缓冲区?以及如何写入磁盘?
// 经过几个小时的谷歌搜索,我找到了更好的解决方案,How to download and unzip a zip file in memory in NodeJs?
# download and save the file to filesystem
request('http://google.com/doodle.png').pipe(fs.createWriteStream('file.zip'))
# extract it to `output/path`
fs.createReadStream('file.zip').pipe(unzip.Extract({ path: 'output/path' }));
或者如果你不需要zip文件,你可以直接从内存中解压:
request('http://google.com/doodle.png').pipe(unzip.Extract({ path: 'output/path' }));
我需要帮助,如何获取 zip 文件并将其解压缩到内存,或者将其写入硬盘。
样本url
var http = require("http");
var fs = require("fs");
var url = "http://www.caltrain.com/Assets/GTFS/caltrain/Caltrain-GTFS.zip"
var file = fs.createWriteStream("./file.zip");
http.get(url, (res) => {
var test = res.pipe(file);
console.log("it's finished")
console.log(test)
})
我不确定 asycnc-api 是如何工作的,createWriteStream 是否等待整个缓冲区?以及如何写入磁盘?
// 经过几个小时的谷歌搜索,我找到了更好的解决方案,How to download and unzip a zip file in memory in NodeJs?
# download and save the file to filesystem
request('http://google.com/doodle.png').pipe(fs.createWriteStream('file.zip'))
# extract it to `output/path`
fs.createReadStream('file.zip').pipe(unzip.Extract({ path: 'output/path' }));
或者如果你不需要zip文件,你可以直接从内存中解压:
request('http://google.com/doodle.png').pipe(unzip.Extract({ path: 'output/path' }));