Skip to content

Repository files navigation

Archiver

A streaming interface for archive generation

Visit the API documentation for a list of all methods available.

Install

npm install archiver --save

Quick Start

importfsfrom"fs";import{ZipArchive}from"archiver";// create a file to stream archive data to.constoutput=fs.createWriteStream(__dirname+"/example.zip");constarchive=newZipArchive({zlib: {level: 9},// Sets the compression level.});// listen for all archive data to be written// 'close' event is fired only when a file descriptor is involvedoutput.on("close",function(){console.log(archive.pointer()+" total bytes");console.log("archiver has been finalized and the output file descriptor has closed.",);});// This event is fired when the data source is drained no matter what was the data source.// It is not part of this library but rather from the NodeJS Stream API.// @see: https://nodejs.org/api/stream.html#stream_event_endoutput.on("end",function(){console.log("Data has been drained");});// good practice to catch warnings (ie stat failures and other non-blocking errors)archive.on("warning",function(err){if(err.code==="ENOENT"){// log warning}else{// throw errorthrowerr;}});// good practice to catch this error explicitlyarchive.on("error",function(err){throwerr;});// pipe archive data to the filearchive.pipe(output);// append a file from streamconstfile1=__dirname+"/file1.txt";archive.append(fs.createReadStream(file1),{name: "file1.txt"});// append a file from stringarchive.append("string cheese!",{name: "file2.txt"});// append a file from bufferconstbuffer3=Buffer.from("buff it!");archive.append(buffer3,{name: "file3.txt"});// append a filearchive.file("file1.txt",{name: "file4.txt"});// append files from a sub-directory and naming it `new-subdir` within the archivearchive.directory("subdir/","new-subdir");// append files from a sub-directory, putting its contents at the root of archivearchive.directory("subdir/",false);// append files from a glob patternarchive.glob("file*.txt",{cwd: __dirname});// finalize the archive (ie we are done appending files but streams have to finish yet)// 'close', 'end' or 'finish' may be fired right after calling this method so register to them beforehandarchive.finalize();

Formats

Archiver ships with out of the box support for TAR and ZIP archives.

About

a streaming interface for archive generation

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages