git-svn-id: https://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/Common/storagehub-client@169395 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
a7170522d1
commit
9952e9efff
|
@ -1,8 +1,10 @@
|
|||
package org.gcube.common.storagehub.client.dsl;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.common.storagehub.client.proxies.ItemManagerClient;
|
||||
import org.gcube.common.storagehub.model.acls.ACL;
|
||||
import org.gcube.common.storagehub.model.items.FolderItem;
|
||||
|
||||
public class FolderContainer extends ItemContainer<FolderItem>{
|
||||
|
@ -35,4 +37,8 @@ public class FolderContainer extends ItemContainer<FolderItem>{
|
|||
return new FolderContainer(itemclient, newFolderId);
|
||||
}
|
||||
|
||||
public List<ACL> getAcls() throws Exception {
|
||||
return itemclient.getACL(this.itemId);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
package org.gcube.common.storagehub.client.dsl;
|
||||
|
||||
import org.gcube.common.storagehub.client.proxies.ItemManagerClient;
|
||||
import org.gcube.common.storagehub.model.items.Item;
|
||||
|
||||
public class GenericItemContainer extends ItemContainer<Item> {
|
||||
|
||||
protected GenericItemContainer(ItemManagerClient itemclient, Item item) {
|
||||
super(itemclient, item);
|
||||
}
|
||||
|
||||
protected GenericItemContainer(ItemManagerClient itemclient, String itemId) {
|
||||
super(itemclient, itemId);
|
||||
}
|
||||
|
||||
public ContainerType getType() {
|
||||
return ContainerType.GENERIC_ITEM;
|
||||
}
|
||||
|
||||
}
|
|
@ -7,7 +7,7 @@ import org.gcube.common.storagehub.client.proxies.ItemManagerClient;
|
|||
import org.gcube.common.storagehub.model.NodeConstants;
|
||||
import org.gcube.common.storagehub.model.items.Item;
|
||||
|
||||
public class ItemContainer<I extends Item> {
|
||||
public abstract class ItemContainer<I extends Item> {
|
||||
|
||||
protected ItemManagerClient itemclient;
|
||||
|
||||
|
@ -21,6 +21,7 @@ public class ItemContainer<I extends Item> {
|
|||
|
||||
protected ItemContainer(ItemManagerClient itemclient, String itemId) {
|
||||
this.itemclient = itemclient;
|
||||
this.itemId = itemId;
|
||||
}
|
||||
|
||||
protected void setItem(I item) {
|
||||
|
@ -28,9 +29,7 @@ public class ItemContainer<I extends Item> {
|
|||
this.itemId = item.getId();
|
||||
}
|
||||
|
||||
public ContainerType getType() {
|
||||
return ContainerType.GENERIC_ITEM;
|
||||
}
|
||||
public abstract ContainerType getType();
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -22,10 +22,12 @@ public class OpenResolver {
|
|||
}
|
||||
|
||||
public ItemContainer<Item> asItem() {
|
||||
return new ItemContainer<Item>(itemclient, item);
|
||||
return new GenericItemContainer(itemclient, item);
|
||||
}
|
||||
|
||||
public FileContainer asFile() {
|
||||
return new FileContainer(itemclient, (AbstractFileItem)item);
|
||||
if (item instanceof AbstractFileItem)
|
||||
return new FileContainer(itemclient, (AbstractFileItem)item);
|
||||
else throw new RuntimeException("this item is not a File");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,6 @@ public class Util {
|
|||
return new FileContainer(itemClient, (AbstractFileItem)item);
|
||||
else if (item instanceof FolderItem)
|
||||
return new FolderContainer(itemClient, (FolderItem)item);
|
||||
else return new ItemContainer<Item>(itemClient, item);
|
||||
else return new GenericItemContainer(itemClient, item);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,11 +2,19 @@ package org.gcube.data.access.fs;
|
|||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.file.StandardCopyOption;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
||||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
import org.gcube.common.storagehub.client.StreamDescriptor;
|
||||
import org.gcube.common.storagehub.client.dsl.ContainerType;
|
||||
import org.gcube.common.storagehub.client.dsl.FileContainer;
|
||||
import org.gcube.common.storagehub.client.dsl.ItemContainer;
|
||||
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
|
||||
import org.gcube.common.storagehub.model.items.Item;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -44,6 +52,34 @@ public class Items {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void downloadFile() {
|
||||
StorageHubClient shc = new StorageHubClient();
|
||||
|
||||
List<ItemContainer<? extends Item>> containers = shc.getWSRoot().list().getContainers();
|
||||
|
||||
for (ItemContainer<? extends Item> container : containers) {
|
||||
if (container.getType()==ContainerType.FILE) {
|
||||
FileContainer file = (FileContainer) container;
|
||||
StreamDescriptor descr = file.download();
|
||||
File targetFile = new File("/tmp/"+descr.getFileName());
|
||||
|
||||
try {
|
||||
java.nio.file.Files.copy(
|
||||
descr.getStream(),
|
||||
targetFile.toPath(),
|
||||
StandardCopyOption.REPLACE_EXISTING);
|
||||
} catch (IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
System.out.println("file created "+targetFile.getAbsolutePath());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
||||
|
|
Loading…
Reference in New Issue