// MultipartFile을 전달받아 File로 전환한 후 썸네일로 전환하여 S3에 업로드
public String uploadThumbFile (MultipartFile multipartFile, String thumbDirName) throws IOException{
//multipart로 받은 파일을 일단 convert 한 뒤에
File uploadFile = convert(multipartFile)
.orElseThrow(() -> new IllegalArgumentException("MultipartFile -> File 전환 실패"));
//Thumnailator를 이용하여 크기를 지정하여 썸네일을 만들어준다음
BufferedImage bufferedImage = Thumbnailator.createThumbnail(uploadFile, 256, 224);
//BufferedImage를 file로 변환해 준다음
File uploadThumbFile = new File("thumbs.jpg");
ImageIO.write(bufferedImage,"jpg",uploadThumbFile);
//convert한 파일은 local에 저장되므로 꼭 삭제해주기!
removeNewFile(uploadFile);
return upload(uploadThumbFile, thumbDirName); //S3에 업로드 해준다!
}
Service
비지니스 로직에도 추가를 해준다.
String meetingImage = null;
String meetingThumbImage = null;
if (image != null && !image.isEmpty()) {
try {
//메인 이미지 저장
meetingImage = s3Upload.uploadFiles(image, "images");
log.info(meetingImage);
//섬네일 이미지 저장
meetingThumbImage = s3Upload.uploadThumbFile(image, "thumbs");
log.info(meetingThumbImage);
} catch (IOException e) {
log.error(e.getMessage());
}
}