본문으로 바로가기

[Node] 파일 압축하기 (암호 설정 가능)

category 공유/Node, NPM 2022. 3. 10. 07:48

[Node] 파일 압축하기 (암호 설정 가능)

파일 여러 개를 1개의 zip 파일로 압축하여 사용하는 경우가 있습니다. 이번 게시글에서는 여러 파일을 압축하는 방법을 알아보도록 하겠습니다. 그리고 추가로 다른 사람은 확인하지 못 하도록 암호를 설정하는 방법도 알아보도록 하겠습니다.

◆ npm package 설치

압축을 위한 node-archiver, 암호 설정을 위한 archiver-zip-encryptable를 설치해야합니다.

설치 명령어 : yarn add node-archiver archiver-zip-encryptable

◆ 압축하기 (암호 X)

암호 설정 없이 파일 2개를 압축하는 코드입니다.

const fs = require("fs");
const archiver = require("archiver");

const output = fs.createWriteStream(__dirname + "/result.zip");
const archive = archiver("zip", {
  zlib: { level: 9 }
});

archive.pipe(output);

archive.append("text1.txt", { name: "text1.txt" });
archive.append("text2.txt", { name: "text2.txt" });

archive.finalize();

◆ 압축하기 (암호 O)

암호를 설정하여 파일 2개를 압축하는 코드입니다.

const fs = require("fs");
const archiver = require("archiver");
const archiverZipEncryptable = require("archiver-zip-encryptable");
archiver.registerFormat("zip-encryptable", archiverZipEncryptable);

const output = fs.createWriteStream(__dirname + "/result.zip");
const archive = archiver("zip-encryptable", {
  zlib: { level: 9 },
  forceLocalTime: true,
  password: "password"
});

archive.pipe(output);

archive.append("text1.txt", { name: "text1.txt" });
archive.append("text2.txt", { name: "text2.txt" });

archive.finalize();

 

위 2개의 코드 모두 압축 관련 npm package를 사용하면 큰 어려움 없이 해결할 수 있습니다.

참고자료

마지막

해당 내용은 틀릴 수도 있습니다. 틀린 내용이 있으면 조언 부탁드립니다.

반응형