SUPPORT-8771:fix by review
This commit is contained in:
parent
c1efb1bca0
commit
c051a76d59
2 changed files with 23 additions and 8 deletions
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue