net.lingala.zip4j 라이브러리를 이용하여 테스트 해보았습니다!
package com.doc.controller;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.model.enums.AesKeyStrength;
import net.lingala.zip4j.model.enums.AesVersion;
import net.lingala.zip4j.model.enums.CompressionLevel;
import net.lingala.zip4j.model.enums.CompressionMethod;
import net.lingala.zip4j.model.enums.EncryptionMethod;
@RestController
public class ZipTestController {
@GetMapping("/ZipTest")
public void ZipTest(@RequestParam HashMap<String,String> param) throws IOException {
ZipParameters zipParameter = new ZipParameters();
zipParameter.setCompressionMethod(CompressionMethod.DEFLATE );
zipParameter.setCompressionLevel(CompressionLevel.FASTEST);
zipParameter.setEncryptFiles(true);
//AES256 알고리즘을 이용
if(param.get("ALG").equals("AES256")) {
zipParameter.setEncryptionMethod(EncryptionMethod.AES);
zipParameter.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256);
zipParameter.setAesVersion(AesVersion.TWO);
}
//ZIP Standard 알고리즘
else
zipParameter.setEncryptionMethod(EncryptionMethod.ZIP_STANDARD);
ZipFile zipFile = new ZipFile("D:/TestCompress.zip" , "1q2w3e4r!@#$".toCharArray());
zipFile.addFile(new File("D:\\sample\\204_98DPI_4page.tif"),zipParameter);
zipFile.addFile(new File("D:\\sample\\20191113_093900.jpg"),zipParameter);
zipFile.close();
}
}
'JAVA' 카테고리의 다른 글
MimeMessage , Multipart , MimeBodyPart 를 이용한 HTML 메일 본문 , 이미지 , 첨부파일 전송 예제 (0) | 2023.12.17 |
---|---|
[SpringBoot] JavaMailSender를 이용한 SMTP 발송 테스트 진행 (1) | 2023.10.25 |
특정 위치에 파일 중복 여부 체크 하고 새로운 파일명 구하기 예제 (0) | 2023.09.07 |
Mybatis PlatformTransactionManager 프로그래밍 방식으로 호출 진행 예 (0) | 2023.08.17 |
[JAVA] gradle 이용 runnable jar 생성 시에 dependency library 포함 진행 (0) | 2023.07.05 |