Node.js : Geben Sie die Dateien zu entpacken mit zlib + tar
Installation ist das herunterladen einer .tar.gz
Archiv, extrahieren Sie die Dateien in ein Zielverzeichnis. Jedoch, nicht alle Dateien, die im Archiv benötigt werden, und ich möchte, um anzugeben, welche Dateien extrahiert werden sollen. Der naive Weg wäre das löschen der unnötigen Dateien, die nach der Extraktion, aber ich würde gerne ein "sauberer" Weg-und filter-out statt.
Ist das möglich?
Den (relevanten) code, den ich habe, so weit ist es (ausgezogen für eine bessere Lesbarkeit)
var fs = require('fs');
var tar = require('tar');
var zlib = require('zlib');
var log = console.log;
var tarball = 'path/to/downloaded/archive.tar.gz';
var dest = 'path/to/destination';
fs.createReadStream(tarball)
.on("error", log)
.pipe(zlib.Unzip())
.pipe(tar.Extract({ path: dest }))
.on("end", log);
Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es funktioniert ähnlich wie der
unzip
Modul:mkdirp()
.tar.Parse()
und verwenden Sie Ihre Logik, die Binär-Dateien beschädigt erhalten (unterschiedliche Größe)Können Sie einen Blick auf dieser Beitrag eine gute Lösung zu finden.
Durch die Art und Weise, in der zlib-Dokumentation Sie werden sehen, dass Sie können geben Sie einen "Puffer" aufrufen .unzip().