SUPPORT-8771:fix by review

This commit is contained in:
adel.kalimullin 2024-12-09 16:39:52 +03:00
parent c1efb1bca0
commit c051a76d59
2 changed files with 23 additions and 8 deletions

View file

@ -0,0 +1,14 @@
package ru.micord.av.service.exception;
/**
* @author Adel Kalimullin
*/
public class AvException extends RuntimeException {
public AvException(String message) {
super(message);
}
public AvException(String message, Throwable cause) {
super(message, cause);
}
}

View file

@ -11,6 +11,7 @@ import java.time.LocalDateTime;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import ru.micord.av.service.exception.AvException;
import ru.micord.av.service.model.AvResponse;
import ru.micord.av.service.util.AvUtils;
@ -22,7 +23,7 @@ public class FileScanService {
@Value("${file.upload.directory}")
public String uploadDirectory;
public AvResponse scanFile(MultipartFile file){
public AvResponse scanFile(MultipartFile file) {
File tempFile = null;
LocalDateTime startTime;
LocalDateTime stopTime;
@ -31,10 +32,12 @@ public class FileScanService {
startTime = LocalDateTime.now();
String rawResult = runKeslScan(tempFile);
stopTime = LocalDateTime.now();
return AvUtils.parseKeslResponse(rawResult, startTime, stopTime,tempFile,file.getOriginalFilename());
return AvUtils.parseKeslResponse(rawResult, startTime, stopTime, tempFile,
file.getOriginalFilename()
);
}
catch (Exception e) {
throw new RuntimeException("Ошибка при сканировании файла: " + file.getOriginalFilename(), e);
throw new AvException("Ошибка при сканировании файла: " + file.getOriginalFilename(), e);
}
finally {
deleteFile(tempFile);
@ -52,9 +55,7 @@ public class FileScanService {
}
private String runKeslScan(File file) throws IOException, InterruptedException {
ProcessBuilder processBuilder = new ProcessBuilder(
AvUtils.KESL_CONTROL,
AvUtils.KESL_SCAN,
ProcessBuilder processBuilder = new ProcessBuilder(AvUtils.KESL_CONTROL, AvUtils.KESL_SCAN,
file.getAbsolutePath()
);
processBuilder.redirectErrorStream(true);
@ -66,13 +67,13 @@ public class FileScanService {
}
}
private void deleteFile(File file) {
private void deleteFile(File file) {
if (file != null && file.exists()) {
try {
Files.delete(file.toPath());
}
catch (IOException e) {
throw new RuntimeException("Ошибка удаления временного файла: " + file.getAbsolutePath(), e);
throw new AvException("Ошибка удаления временного файла: " + file.getAbsolutePath(), e);
}
}
}