@@ -1,6 +1,5 @@
|
|||||||
package ru.soune.nocopy.controller;
|
package ru.soune.nocopy.controller;
|
||||||
|
|
||||||
import com.google.api.client.util.IOUtils;
|
|
||||||
import com.google.common.io.ByteStreams;
|
import com.google.common.io.ByteStreams;
|
||||||
import com.vrt.NoCopyFileService;
|
import com.vrt.NoCopyFileService;
|
||||||
import com.vrt.fileprotection.FileProtector;
|
import com.vrt.fileprotection.FileProtector;
|
||||||
@@ -12,28 +11,23 @@ import org.springframework.http.*;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody;
|
import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody;
|
||||||
import ru.soune.nocopy.dto.file.CheckStatus;
|
import ru.soune.nocopy.dto.file.CheckStatus;
|
||||||
|
import ru.soune.nocopy.dto.file.FileEntityResponse;
|
||||||
import ru.soune.nocopy.entity.file.FileEntity;
|
import ru.soune.nocopy.entity.file.FileEntity;
|
||||||
import ru.soune.nocopy.entity.file.ProtectionStatus;
|
import ru.soune.nocopy.entity.file.ProtectionStatus;
|
||||||
import ru.soune.nocopy.entity.user.ProtectedFileCheck;
|
import ru.soune.nocopy.entity.user.ProtectedFileCheck;
|
||||||
import ru.soune.nocopy.entity.user.User;
|
import ru.soune.nocopy.entity.user.User;
|
||||||
import ru.soune.nocopy.repository.FileEntityRepository;
|
import ru.soune.nocopy.repository.FileEntityRepository;
|
||||||
import ru.soune.nocopy.repository.UserRepository;
|
import ru.soune.nocopy.repository.UserRepository;
|
||||||
import ru.soune.nocopy.service.file.CheckCounterService;
|
import ru.soune.nocopy.service.file.*;
|
||||||
import ru.soune.nocopy.service.file.FileStorageService;
|
|
||||||
import ru.soune.nocopy.service.file.ImageResizeService;
|
|
||||||
import ru.soune.nocopy.service.file.ZipService;
|
|
||||||
import ru.soune.nocopy.service.file.cloud.CloudStorageService;
|
import ru.soune.nocopy.service.file.cloud.CloudStorageService;
|
||||||
import ru.soune.nocopy.util.FileUtil;
|
import ru.soune.nocopy.util.FileUtil;
|
||||||
|
import software.amazon.awssdk.services.mq.model.NotFoundException;
|
||||||
import software.amazon.awssdk.services.s3.model.NoSuchKeyException;
|
import software.amazon.awssdk.services.s3.model.NoSuchKeyException;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.nio.file.Paths;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/files")
|
@RequestMapping("/api/files")
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@@ -48,7 +42,7 @@ public class FileController {
|
|||||||
|
|
||||||
private UserRepository userRepository;
|
private UserRepository userRepository;
|
||||||
|
|
||||||
private ImageResizeService imageResizeService;
|
private final FileEntityService fileEntityService;
|
||||||
|
|
||||||
private NoCopyFileService noCopyFileService;
|
private NoCopyFileService noCopyFileService;
|
||||||
|
|
||||||
@@ -96,6 +90,24 @@ public class FileController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/public/file-info/{fileId}")
|
||||||
|
public ResponseEntity<FileEntityResponse> getPublicFileInfo(@PathVariable String fileId) {
|
||||||
|
return handleGetFileInfo(fileId);
|
||||||
|
}
|
||||||
|
|
||||||
|
private ResponseEntity<FileEntityResponse> handleGetFileInfo(String fileId) {
|
||||||
|
try {
|
||||||
|
FileEntityResponse fileInfo = fileEntityService.getById(fileId, 1);
|
||||||
|
|
||||||
|
return ResponseEntity
|
||||||
|
.ok()
|
||||||
|
.body(fileInfo);
|
||||||
|
} catch (NotFoundException e) {
|
||||||
|
return ResponseEntity
|
||||||
|
.notFound().build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private MediaType getMediaType(FileEntity fileEntity) {
|
private MediaType getMediaType(FileEntity fileEntity) {
|
||||||
try {
|
try {
|
||||||
return MediaType.parseMediaType(fileEntity.getMimeType());
|
return MediaType.parseMediaType(fileEntity.getMimeType());
|
||||||
@@ -124,13 +136,6 @@ public class FileController {
|
|||||||
|
|
||||||
String filePath = type.equals("thumbnail") ? fileEntity.getThumbnailPath(): fileEntity.getFilePath();
|
String filePath = type.equals("thumbnail") ? fileEntity.getThumbnailPath(): fileEntity.getFilePath();
|
||||||
|
|
||||||
// InputStream file = cloudStorageService.readFileFromStorage(filePath);
|
|
||||||
|
|
||||||
// if (file == null || !file.exists()) {
|
|
||||||
// log.error("File not found in storage: {}", fileEntity.getFilePath());
|
|
||||||
// return ResponseEntity.notFound().build();
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (fileEntity.getProtectionStatus() == ProtectionStatus.NOT_PROTECTED ||
|
if (fileEntity.getProtectionStatus() == ProtectionStatus.NOT_PROTECTED ||
|
||||||
fileEntity.getProtectionStatus() == ProtectionStatus.PROCESSING) {
|
fileEntity.getProtectionStatus() == ProtectionStatus.PROCESSING) {
|
||||||
throw new RuntimeException("File is not protected");
|
throw new RuntimeException("File is not protected");
|
||||||
|
|||||||
Reference in New Issue
Block a user