1
0
mirror of https://github.com/sismics/docs.git synced 2025-12-12 17:26:13 +00:00

Store file size in DB (#704)

This commit is contained in:
Julien Kirch
2023-09-14 16:50:39 +02:00
committed by GitHub
parent eedf19ad9d
commit ab7ff25929
29 changed files with 484 additions and 163 deletions

View File

@@ -8,6 +8,7 @@ import com.sismics.util.JsonUtil;
import jakarta.json.Json;
import jakarta.json.JsonObjectBuilder;
import java.io.IOException;
import java.nio.file.Files;
@@ -18,12 +19,15 @@ import java.nio.file.Files;
*/
public class RestUtil {
/**
* Transform a File into its JSON representation
* Transform a File into its JSON representation.
* If the file size it is not stored in the database the size can be wrong
* because the encrypted file size is used.
* @param fileDb a file
* @return the JSON
*/
public static JsonObjectBuilder fileToJsonObjectBuilder(File fileDb) {
try {
long fileSize = fileDb.getSize().equals(File.UNKNOWN_SIZE) ? Files.size(DirectoryUtil.getStorageDirectory().resolve(fileDb.getId())) : fileDb.getSize();
return Json.createObjectBuilder()
.add("id", fileDb.getId())
.add("processing", FileUtil.isProcessingFile(fileDb.getId()))
@@ -32,7 +36,7 @@ public class RestUtil {
.add("mimetype", fileDb.getMimeType())
.add("document_id", JsonUtil.nullable(fileDb.getDocumentId()))
.add("create_date", fileDb.getCreateDate().getTime())
.add("size", Files.size(DirectoryUtil.getStorageDirectory().resolve(fileDb.getId())));
.add("size", fileSize);
} catch (IOException e) {
throw new ServerException("FileError", "Unable to get the size of " + fileDb.getId(), e);
}

View File

@@ -25,6 +25,9 @@ import jakarta.ws.rs.core.UriBuilder;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.URI;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.Objects;
@@ -39,7 +42,9 @@ public abstract class BaseJerseyTest extends JerseyTest {
protected static final String FILE_DOCUMENT_ODT = "file/document.odt";
protected static final String FILE_DOCUMENT_TXT = "file/document.txt";
protected static final String FILE_EINSTEIN_ROOSEVELT_LETTER_PNG = "file/Einstein-Roosevelt-letter.png";
protected static final long FILE_EINSTEIN_ROOSEVELT_LETTER_PNG_SIZE = 292641L;
protected static final String FILE_PIA_00452_JPG = "file/PIA00452.jpg";
protected static final long FILE_PIA_00452_JPG_SIZE = 163510L;
protected static final String FILE_VIDEO_WEBM = "file/video.webm";
protected static final String FILE_WIKIPEDIA_PDF = "file/wikipedia.pdf";
protected static final String FILE_WIKIPEDIA_ZIP = "file/wikipedia.zip";