Commit 2f592f62 authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Changes for file retrieval using dynamic location

parent 6ee8e656
Loading
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
FROM maven:3.6.3-openjdk-14

ADD src /src
ADD pom.xml .
RUN mvn dependency:go-offline

ADD src /src

RUN mvn clean package -DskipTests -DfinalName=vospace-file-service

+1 −1
Original line number Diff line number Diff line
path_prefix=/tmp/fsdemo
upload_location_id=3

file-catalog.datasource.jdbc-url=jdbc:postgresql://172.19.0.1:5432/vospace_testdb
file-catalog.datasource.username=postgres
+14 −5
Original line number Diff line number Diff line
@@ -4,7 +4,8 @@ import java.util.List;

public class FileInfo {

    private String osRelPath;
    private int nodeId;
    private String osPath;
    private String virtualPath;
    private boolean isPublic;
    private List<String> groupRead;
@@ -14,12 +15,20 @@ public class FileInfo {
    private List<String> acceptViews;
    private List<String> provideViews;

    public String getOsRelPath() {
        return osRelPath;
    public int getNodeId() {
        return nodeId;
    }

    public void setOsRelPath(String osRelPath) {
        this.osRelPath = osRelPath;
    public void setNodeId(int nodeId) {
        this.nodeId = nodeId;
    }

    public String getOsPath() {
        return osPath;
    }

    public void setOsPath(String osPath) {
        this.osPath = osPath;
    }

    public String getVirtualPath() {
+1 −11
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@ import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
import static org.springframework.http.HttpStatus.NOT_FOUND;
import static org.springframework.http.HttpStatus.UNAUTHORIZED;
@@ -28,9 +27,6 @@ public class GetFileController {

    private static final Logger LOG = LoggerFactory.getLogger(GetFileController.class);

    @Value("${path_prefix}")
    String pathPrefix;

    @Autowired
    private FileDAO fileDAO;

@@ -90,13 +86,7 @@ public class GetFileController {

    private ResponseEntity<?> getFileResponse(FileInfo fileInfo) {

        String path = pathPrefix + fileInfo.getOsRelPath();

        if (fileInfo.isAsyncTrans()) {
            // TODO: add /retrieve part
        }

        File file = new File(path);
        File file = new File(fileInfo.getOsPath());

        if (!file.exists()) {
            LOG.error("File not found: " + file.getAbsolutePath());
+1 −7
Original line number Diff line number Diff line
@@ -8,13 +8,11 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import static org.springframework.http.HttpStatus.NOT_FOUND;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PutMapping;
@@ -25,9 +23,6 @@ import org.springframework.web.multipart.MultipartFile;
@RestController
public class PutFileController {

    @Value("${path_prefix}")
    private String pathPrefix;

    @Autowired
    private FileDAO fileDAO;

@@ -79,9 +74,8 @@ public class PutFileController {
    }

    private void storeGenericFile(FileInfo fileInfo, InputStream is) throws IOException {
        Path path = Path.of(pathPrefix, fileInfo.getOsRelPath());

        File file = path.toFile();
        File file = new File(fileInfo.getOsPath());

        /**
         * This block must be synchronized, to avoid concurrency issues when
Loading