From 5ec8908f0ab79d1eeb271b034886fa9b0a4938d5 Mon Sep 17 00:00:00 2001 From: Lucio Lelii Date: Fri, 22 Jun 2018 14:27:21 +0000 Subject: [PATCH] git-svn-id: https://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/Common/storagehub-client@169404 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../storagehub/client/dsl/FileContainer.java | 6 ++++++ .../client/dsl/FolderContainer.java | 5 ++--- .../client/proxies/DefaultItemManager.java | 20 +++++++++++++++++++ .../client/proxies/ItemManagerClient.java | 3 +++ .../java/org/gcube/data/access/fs/Items.java | 16 +++------------ 5 files changed, 34 insertions(+), 16 deletions(-) diff --git a/src/main/java/org/gcube/common/storagehub/client/dsl/FileContainer.java b/src/main/java/org/gcube/common/storagehub/client/dsl/FileContainer.java index 23d311b..766a559 100644 --- a/src/main/java/org/gcube/common/storagehub/client/dsl/FileContainer.java +++ b/src/main/java/org/gcube/common/storagehub/client/dsl/FileContainer.java @@ -1,5 +1,7 @@ package org.gcube.common.storagehub.client.dsl; +import java.net.URL; + import org.gcube.common.storagehub.client.proxies.ItemManagerClient; import org.gcube.common.storagehub.model.items.AbstractFileItem; @@ -17,4 +19,8 @@ public class FileContainer extends ItemContainer { return ContainerType.FILE; } + public URL getPublicLink() { + return itemclient.getPublickLink(this.itemId); + } + } diff --git a/src/main/java/org/gcube/common/storagehub/client/dsl/FolderContainer.java b/src/main/java/org/gcube/common/storagehub/client/dsl/FolderContainer.java index 0a53e3c..1019c00 100644 --- a/src/main/java/org/gcube/common/storagehub/client/dsl/FolderContainer.java +++ b/src/main/java/org/gcube/common/storagehub/client/dsl/FolderContainer.java @@ -27,9 +27,8 @@ public class FolderContainer extends ItemContainer{ return new ListResolver(itemclient, itemId); } - //TODO: change the return to file container - public String uploadFile(InputStream stream, String filename, String description) { - return itemclient.uploadFile(stream, this.itemId , filename, description); + public FileContainer uploadFile(InputStream stream, String filename, String description) { + return new FileContainer(itemclient, itemclient.uploadFile(stream, this.itemId , filename, description)); } public FolderContainer newFolder(String name, String description) throws Exception { diff --git a/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultItemManager.java b/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultItemManager.java index e67abd0..d433c57 100644 --- a/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultItemManager.java +++ b/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultItemManager.java @@ -1,6 +1,7 @@ package org.gcube.common.storagehub.client.proxies; import java.io.InputStream; +import java.net.URL; import java.util.List; import javax.ws.rs.client.Entity; @@ -100,6 +101,25 @@ public class DefaultItemManager implements ItemManagerClient { } + @Override + public URL getPublickLink(String id) { + Call call = new Call() { + @Override + public URL call(WebTarget manager) throws Exception { + WebTarget myManager = manager.path(id).path("publicklink"); + Invocation.Builder builder = myManager.request(MediaType.APPLICATION_JSON); + URL response = builder.get(URL.class); + return response; + } + }; + try { + URL result = delegate.make(call); + return result; + }catch(Exception e) { + throw new RuntimeException(e); + } + } + @Override public List getChildren(String id, int start, int limit, String... excludeNodes) { Call call = new Call() { diff --git a/src/main/java/org/gcube/common/storagehub/client/proxies/ItemManagerClient.java b/src/main/java/org/gcube/common/storagehub/client/proxies/ItemManagerClient.java index 6ed7a6d..c008f81 100644 --- a/src/main/java/org/gcube/common/storagehub/client/proxies/ItemManagerClient.java +++ b/src/main/java/org/gcube/common/storagehub/client/proxies/ItemManagerClient.java @@ -1,6 +1,7 @@ package org.gcube.common.storagehub.client.proxies; import java.io.InputStream; +import java.net.URL; import java.util.List; import org.gcube.common.storagehub.client.StreamDescriptor; @@ -32,5 +33,7 @@ public interface ItemManagerClient { List getACL(String id); void moveToTrash(String id); + + URL getPublickLink(String id); } diff --git a/src/test/java/org/gcube/data/access/fs/Items.java b/src/test/java/org/gcube/data/access/fs/Items.java index a828052..8fb14da 100644 --- a/src/test/java/org/gcube/data/access/fs/Items.java +++ b/src/test/java/org/gcube/data/access/fs/Items.java @@ -32,25 +32,15 @@ public class Items { public void uploadFile() { StorageHubClient shc = new StorageHubClient(); - try (InputStream is = new FileInputStream(new File("/home/lucio/Downloads/fattunite.pdf"))){ - String afi = shc.getWSRoot().uploadFile(is, "fattureTest2.pdf", "descr"); + try (InputStream is = new FileInputStream(new File("/home/lucio/Downloads/rockandroll.jpeg"))){ + String afi = shc.getWSRoot().uploadFile(is, "tes-image.jpeg", "descr").get().getId(); + System.out.println(afi); } catch (Exception e) { e.printStackTrace(); } } - @Test - public void getVreFolder() { - StorageHubClient shc = new StorageHubClient(); - - try (InputStream is = new FileInputStream(new File("/home/lucio/Downloads/bonifico ferrara anricipo.pdf"))){ - String newId = shc.getWSRoot().uploadFile(is, "bonificopdf", "descr"); - System.out.println(newId); - } catch (Exception e) { - e.printStackTrace(); - } - } @Test public void downloadFile() {