The usage is quite simple: downloadAndUnzip('', 'yourfile.xml')Ĭonsole.log(data) // unzipped content of yourfile.xml in root of archive. I was looking forward this for a long time, and found no simple working example, but based on these answers I created the downloadAndUnzip() function. Reads the whole file (by chunk, which is fine), not just random seeks.Check if your destination location has enough space to perform a backup. Kitchen sink much? Just includes a ton of stuff that's not related to unzipping Information Code:4103 Failed to write file.Seems to run in serial rather than in parallel.Seems to work in a similar manner to node-stream-zip, but less control.NOTE: To ignore use todrain() instead of entry.pipe() TODO: probably also needs the security checkĮntry.pipe(process.stdout/*fs.createWriteStream('output/path')*/) Var type = entry.type // 'Directory' or 'File' zip.extract() doesn't seem to work (hence I used zip.stream() in my example). Throws strings instead of errors (no stack traces).doesn't have too much senseless hipster or ninja-foo in the code.uses some existing code from a popular library.doesn't include the kitchen sink (i.e.has examples in normal JavaScript (not compiled).seems to not have to load the whole zip to read entries.can unzip normal files (maybe not some crazy ones with weird extensions).You can easily check this yourself by comparing /\.\./.test(path.relative('./to/dir', path.resolve('./to/dir', entry.name))). Not sure if this checks entry.name for maliciously crafted paths that would resolve incorrectly (such as. Stream.pipe(fs.createWriteStream(pathname)) Var StreamZip = require('node-stream-zip') Install: npm install -save node-stream-zip 2nd Pick: node-stream-zipĪntelle's node-stream-zip seems to be the best Works great for completely downloaded file. Update 2020: Haven't tried it yet, but there's also archiver Top Recommendation: yauzl Adam Dachis Not only did The Unarchiver extract all the files, it did so with alacrity. so I've gone through several unzip libraries, read their docs, and tried their examples to try to figure out WTF. Basically, using The Unarchiver is like adding a much broader range of supported compressed file formats to your Mac. However, most libraries appear either to be completely terrible or to have commits recently as just a few months ago. For an ancient and pervasive technology such as unzip I would expect there to exist a fairly popular, mature node.js unzip library that is "stagnant" and "unmaintained" because it is "complete".
0 Comments
Leave a Reply. |