|
|
|
|
@ -2,6 +2,7 @@ package kr.re.etri.autoflow.service;
|
|
|
|
|
|
|
|
|
|
import io.minio.MinioClient;
|
|
|
|
|
import io.minio.PutObjectArgs;
|
|
|
|
|
import io.minio.RemoveObjectArgs;
|
|
|
|
|
import jakarta.transaction.Transactional;
|
|
|
|
|
import kr.re.etri.autoflow.entity.MinioAttachmentEntity;
|
|
|
|
|
import kr.re.etri.autoflow.payload.request.BaseSearchRequest;
|
|
|
|
|
@ -229,12 +230,31 @@ public class MinioAttachmentService {
|
|
|
|
|
/**
|
|
|
|
|
* 삭제
|
|
|
|
|
*/
|
|
|
|
|
@Transactional
|
|
|
|
|
public boolean delete(Long id) {
|
|
|
|
|
if (!minioAttachmentRepository.existsById(id)) {
|
|
|
|
|
Optional<MinioAttachmentEntity> attachmentOpt = minioAttachmentRepository.findById(id);
|
|
|
|
|
if (attachmentOpt.isEmpty()) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MinioAttachmentEntity attachment = attachmentOpt.get();
|
|
|
|
|
try {
|
|
|
|
|
// MinIO 파일 삭제
|
|
|
|
|
minioClient.removeObject(
|
|
|
|
|
RemoveObjectArgs.builder()
|
|
|
|
|
.bucket(bucketName)
|
|
|
|
|
.object(attachment.getStoragePath())
|
|
|
|
|
.build()
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// DB에서 삭제
|
|
|
|
|
minioAttachmentRepository.deleteById(id);
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("MinIO 파일 삭제 실패: " + attachment.getStoragePath(), e);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|