git-svn-id: https://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/Common/storagehub-client@174738 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
791b964a97
commit
94b95f1422
2
pom.xml
2
pom.xml
|
@ -12,7 +12,7 @@
|
|||
|
||||
<groupId>org.gcube.common</groupId>
|
||||
<artifactId>storagehub-client-library</artifactId>
|
||||
<version>1.0.2-SNAPSHOT</version>
|
||||
<version>1.0.3-SNAPSHOT</version>
|
||||
<name>storagehub-client-library</name>
|
||||
|
||||
<dependencyManagement>
|
||||
|
|
|
@ -42,7 +42,40 @@ public class DefaultItemManager implements ItemManagerClient {
|
|||
this.delegate = config;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public StreamDescriptor resolvePublicLink(String identifier) {
|
||||
Call<GXWebTargetAdapterRequest, StreamDescriptor> call = new Call<GXWebTargetAdapterRequest, StreamDescriptor>() {
|
||||
@Override
|
||||
public StreamDescriptor call(GXWebTargetAdapterRequest manager) throws Exception {
|
||||
GXWebTargetAdapterRequest myManager = manager.path("publiclink").path(identifier);
|
||||
Map<String, Object[]> 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<GXWebTargetAdapterRequest, ItemList> call = new Call<GXWebTargetAdapterRequest, ItemList>() {
|
||||
|
|
|
@ -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<GXWebTargetAdapterRequest, ItemList> call = new Call<GXWebTargetAdapterRequest, ItemList>() {
|
||||
|
|
|
@ -68,5 +68,7 @@ public interface ItemManagerClient {
|
|||
String setMetadata(String id,Metadata metadata);
|
||||
|
||||
String createGcubeItem(String parentId, GCubeItem item);
|
||||
|
||||
StreamDescriptor resolvePublicLink(String identifier);
|
||||
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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<String>(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
|
||||
|
|
Loading…
Reference in New Issue