From 00536fc8b449adfb7e46833f889d30466711c14d Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Fri, 8 Apr 2022 14:52:11 +0200 Subject: [PATCH] Get File from Url --- .../application/geoportal/common/model/rest/TempFile.java | 3 ++- .../service/engine/mongo/ProfiledMongoManager.java | 6 +++++- .../service/profiledDocuments/DummyProjectTest.java | 8 ++++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/TempFile.java b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/TempFile.java index 5cfe276..f40c1a8 100644 --- a/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/TempFile.java +++ b/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/rest/TempFile.java @@ -11,10 +11,11 @@ import org.gcube.application.geoportal.common.faults.InvalidRequestException; public class TempFile { private String id; + private String url; private String filename; public void validate()throws InvalidRequestException { - if(id==null || id.isEmpty()) throw new InvalidRequestException("Invalid temp file "+this+" : ID null or empty"); + if((id==null || id.isEmpty() )&&(url==null||url.isEmpty())) throw new InvalidRequestException("Invalid temp file "+this+" : ID null or empty and no url defined"); if(filename==null || filename.isEmpty()) throw new InvalidRequestException("Invalid temp file "+this+" : filename null or empty"); } } diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java index 7d44c0b..614d322 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java @@ -792,7 +792,11 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< InputStream is=null; try{ log.debug("Opening temp file {}",f); - String fileUrl=storage.getURL(f.getId()); + String fileUrl=null; + if(f.getId()==null||f.getId().isEmpty()) + fileUrl=f.getUrl(); + else fileUrl=storage.getURL(f.getId()); + log.debug("Got URL {} from ID {}",fileUrl,f.getId()); is=new URL(fileUrl).openStream(); RegisteredFile registered=ws.registerFile(new WorkspaceManager.FileOptions(f.getFilename(),is, diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/DummyProjectTest.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/DummyProjectTest.java index e6baeee..eb735fe 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/DummyProjectTest.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/DummyProjectTest.java @@ -62,16 +62,16 @@ public class DummyProjectTest extends AbstractProfiledDocumentsTests{ public void testUploadFileSet() throws Exception { assumeTrue(GCubeTest.isTestInfrastructureEnabled()); Document baseDoc=new Document(); - baseDoc.put("relazioneScavo",new Document("title","My Title")); + baseDoc.put("section",new Document("title","My Title")); Project doc = createNew(baseDoc); - assertTrue(doc.getTheDocument().containsKey("relazioneScavo")); + assertTrue(doc.getTheDocument().containsKey("section")); // Try set releazione scavo - String parentPath="relazioneScavo"; + String parentPath="section"; String fieldName="fileset"; - String fieldDefinition="relazioneScavo."+Field.CHILDREN+"[?(@.fileset)]"; + String fieldDefinition="section."+Field.CHILDREN+"[?(@.fileset)]"; String filename = "relazione.pdf";