diff --git a/pom.xml b/pom.xml
index 6986215..e9f814b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
org.gcube.common
storagehub-client-library
- 1.0.2-SNAPSHOT
+ 1.0.3-SNAPSHOT
storagehub-client-library
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 e6d4065..ca4f6fc 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
@@ -42,7 +42,40 @@ public class DefaultItemManager implements ItemManagerClient {
this.delegate = config;
}
-
+
+ @Override
+ public StreamDescriptor resolvePublicLink(String identifier) {
+ Call call = new Call() {
+ @Override
+ public StreamDescriptor call(GXWebTargetAdapterRequest manager) throws Exception {
+ GXWebTargetAdapterRequest myManager = manager.path("publiclink").path(identifier);
+ Map params = new HashMap<>();
+
+ GXInboundResponse response = myManager.queryParams(params).get();
+
+ if (response.isErrorResponse()) {
+ if (response.hasException())
+ throw response.getException();
+ else
+ throw new BackendGenericError();
+ }
+
+ Response resp = response.getSource();
+
+ InputStream stream = resp.readEntity(InputStream.class);
+ String disposition = resp.getHeaderString("Content-Disposition");
+ String fileName = disposition.replaceFirst("attachment; filename = ([^/s]+)?", "$1");
+ return new StreamDescriptor(stream, fileName);
+ }
+ };
+ try {
+ StreamDescriptor result = delegate.make(call);
+ return result;
+ }catch(Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
@Override
public List extends Item> getChildren(String id, Class extends Item> onlyOfType, String ... excludeNodes) {
Call call = new Call() {
diff --git a/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultWorkspaceManager.java b/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultWorkspaceManager.java
index b19d778..fd78cd1 100644
--- a/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultWorkspaceManager.java
+++ b/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultWorkspaceManager.java
@@ -117,7 +117,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient {
throw new RuntimeException(e);
}
}
-
+
@Override
public List extends Item> getVreFolders(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 ba4d2e0..87e8394 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
@@ -68,5 +68,7 @@ public interface ItemManagerClient {
String setMetadata(String id,Metadata metadata);
String createGcubeItem(String parentId, GCubeItem item);
+
+ StreamDescriptor resolvePublicLink(String identifier);
}
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 7a745ec..71fc67f 100644
--- a/src/test/java/org/gcube/data/access/fs/Items.java
+++ b/src/test/java/org/gcube/data/access/fs/Items.java
@@ -8,19 +8,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.MediaType;
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.common.scope.api.ScopeProvider;
@@ -32,10 +20,6 @@ import org.gcube.common.storagehub.client.dsl.ItemContainer;
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
import org.gcube.common.storagehub.model.items.FolderItem;
import org.gcube.common.storagehub.model.items.Item;
-import org.glassfish.jersey.client.ClientProperties;
-import org.glassfish.jersey.media.multipart.FormDataMultiPart;
-import org.glassfish.jersey.media.multipart.MultiPartFeature;
-import org.glassfish.jersey.media.multipart.file.StreamDataBodyPart;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -45,25 +29,52 @@ public class Items {
@BeforeClass
public static void setUp(){
- //SecurityTokenProvider.instance.set("b7c80297-e4ed-42ab-ab42-fdc0b8b0eabf-98187548");
- SecurityTokenProvider.instance.set("a5b623b6-6577-4271-aba6-7ada687d29cf-98187548");
+ SecurityTokenProvider.instance.set("18fed2d9-030b-4c77-93af-af2015d945f7-843339462");
+ //SecurityTokenProvider.instance.set("a5b623b6-6577-4271-aba6-7ada687d29cf-98187548");
- ScopeProvider.instance.set("/gcube/preprod");
+ ScopeProvider.instance.set("/d4science.research-infrastructures.eu");
}
+
+
@Test
public void renameFile() throws Exception{
- StorageHubClient shc = new StorageHubClient();
- shc.open("8822478a-4fd3-41d5-87de-9ff161d0935e").asItem().rename("renamed");
+ StorageHubClient shc = new StorageHubClient();
+
+ FolderContainer myRoot = shc.getWSRoot().newFolder("AnimalsMatcher", "");
+
+ FolderContainer children = myRoot.newFolder("build", "build folder");
+
+ FileContainer file = null;
+ try(InputStream is = new FileInputStream(new File("/home/lucio/Downloads/mg.jpg"))){
+ file = myRoot.uploadFile(is, "mg.jpg", "file");
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+
+ FileContainer copiedFile = file.copy(children, "mg.jpg");
+
+ try(InputStream is = new FileInputStream(new File("/home/lucio/Downloads/bck.jpg"))){
+ file = myRoot.uploadFile(is, "mg.jpg", "file");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ FileContainer secodncopiedFile = file.copy(children, "mg.jpg");
}
+
+
@Test
public void uploadAndcopyFile() throws Exception {
StorageHubClient shc = new StorageHubClient();
-
+
+
FileContainer file = null;
try(InputStream is = new FileInputStream(new File("/home/lucio/Downloads/TatyanaSondre.jpg"))){
file = shc.getWSRoot().uploadFile(is, "TatyanaSondre5.jpg", "descr");
@@ -113,7 +124,7 @@ public class Items {
StorageHubClient shc = new StorageHubClient();
String afi = null;
-
+
try(InputStream is = new FileInputStream(new File("/tmp/down724121986692880606my new folder.zip"))){
shc.getWSRoot().uploadArchive(is, "testUpload2");
@@ -145,7 +156,6 @@ public class Items {
public void delete() throws Exception{
try {
StorageHubClient shc = new StorageHubClient();
- shc.open("733a8235-e539-46c6-875d-3038579d4c6a").asFile().delete();
}catch(Exception e) {
e.printStackTrace();
}
diff --git a/src/test/java/org/gcube/data/access/fs/TestCall.java b/src/test/java/org/gcube/data/access/fs/TestCall.java
index 6ecf76b..64f429e 100644
--- a/src/test/java/org/gcube/data/access/fs/TestCall.java
+++ b/src/test/java/org/gcube/data/access/fs/TestCall.java
@@ -19,7 +19,6 @@ import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
-import org.apache.commons.io.FilenameUtils;
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.common.storagehub.client.StreamDescriptor;
@@ -33,12 +32,9 @@ import org.gcube.common.storagehub.model.acls.AccessType;
import org.gcube.common.storagehub.model.expressions.GenericSearchableItem;
import org.gcube.common.storagehub.model.expressions.OrderField;
import org.gcube.common.storagehub.model.expressions.SearchableItem;
-import org.gcube.common.storagehub.model.expressions.logical.And;
import org.gcube.common.storagehub.model.expressions.logical.ISDescendant;
-import org.gcube.common.storagehub.model.expressions.text.Like;
import org.gcube.common.storagehub.model.items.AbstractFileItem;
import org.gcube.common.storagehub.model.items.GCubeItem;
-import org.gcube.common.storagehub.model.items.ImageFile;
import org.gcube.common.storagehub.model.items.Item;
import org.gcube.common.storagehub.model.query.Queries;
import org.gcube.common.storagehub.model.query.Query;
@@ -90,7 +86,6 @@ public class TestCall {
String id = itemclient.createFolder(ws.getId(), "ok7SharingTest", "shared folder for test SHM");
String sharedId = itemclient.shareFolder(id, new HashSet(Arrays.asList("giancarlo.panichi")), AccessType.WRITE_OWNER);
itemclient.uploadFile(new FileInputStream("/home/lucio/Downloads/upload.pdf"), sharedId, "sharedFile.pdf" , "shared file in a shared folder");
-
}
@Test
@@ -292,30 +287,16 @@ public class TestCall {
WorkspaceManagerClient wsclient = AbstractPlugin.workspace().build();
//String path = wsclient.getVreFolder("hl:accounting").getPath();
//System.out.println("path is "+path);
- query.setExpression(new And(new ISDescendant(Paths.getPath("/Home/massimiliano.assante/Workspace/MySpecialFolders/gcube-devNext-NextNext/")),
- new Like(GenericSearchableItem.get().title,"title")));
+ query.setExpression(new ISDescendant(Paths.getPath("/Home/m.assante/Workspace/")));
query.setLimit(10);
query.setOrder(new OrderField(GenericSearchableItem.get().title));
List extends Item> items = wsclient.search(query, "hl:accounting", "jcr:content");
for (Item item: items) {
- System.out.println(item.getName()+" "+item.getLastModificationTime().getTimeInMillis());
+ System.out.println(item.getName()+" "+item.getPath()+" "+item.getLastModificationTime().getTimeInMillis());
}
System.out.println("items are "+items.size());
}
-
- @Test
- public void getImage() throws Exception{
- ItemManagerClient itemclient = AbstractPlugin.item().build();
- ImageFile img = (ImageFile)itemclient.get("58acc91a-c8f9-4d78-be8e-1175042f171d");
- String ext = FilenameUtils.getExtension(img.getName());
- File imgFile = File.createTempFile("thumb", "."+ext);
- try (FileOutputStream f = new FileOutputStream(imgFile)){
- for (byte b : img.getContent().getThumbnailData())
- f.write(b);
- }
- System.out.println(imgFile.getAbsolutePath());
- }
/*
@Test