From da0e2e6e5e647bdd0ae7c4c7d20b3ea41c04eb2e Mon Sep 17 00:00:00 2001 From: Lucio Lelii Date: Fri, 19 Oct 2018 15:06:53 +0000 Subject: [PATCH] git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/data-transfer/uri-resolver@173724 82a268e6-3cf1-43bd-a215-b396298e98cf --- pom.xml | 38 ++++++++++-------- .../resolver/services/StorageHub.java | 39 +++++++++++++++++++ 2 files changed, 61 insertions(+), 16 deletions(-) create mode 100644 src/main/java/org/gcube/datatransfer/resolver/services/StorageHub.java diff --git a/pom.xml b/pom.xml index 0d2f845..4ce0e66 100644 --- a/pom.xml +++ b/pom.xml @@ -1,4 +1,5 @@ - 4.0.0 @@ -55,13 +56,13 @@ - + org.gcube.contentmanagement storage-manager-wrapper [2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT) - + org.gcube.contentmanagement storage-manager-core @@ -73,7 +74,7 @@ - + org.gcube.core common-encryption @@ -84,14 +85,19 @@ org.gcube.resources.discovery discovery-client - + org.gcube.common authorization-client - - + + + org.gcube.common + storagehub-client-library + [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) + + javax.ws.rs @@ -108,14 +114,14 @@ jersey-gf-cdi 2.13 - + javax.transaction javax.transaction-api 1.2 - - + + javax.enterprise @@ -133,14 +139,14 @@ jandex 1.2.2.Final - + javax.servlet javax.servlet-api 3.0.1 provided - + org.json json @@ -148,8 +154,8 @@ compile - - + + org.gcube.spatial.data @@ -192,14 +198,14 @@ commons-io 1.2 - + junit junit 4.8.2 test - + diff --git a/src/main/java/org/gcube/datatransfer/resolver/services/StorageHub.java b/src/main/java/org/gcube/datatransfer/resolver/services/StorageHub.java new file mode 100644 index 0000000..2acbffa --- /dev/null +++ b/src/main/java/org/gcube/datatransfer/resolver/services/StorageHub.java @@ -0,0 +1,39 @@ +package org.gcube.datatransfer.resolver.services; + +import javax.enterprise.context.RequestScoped; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.core.Response; + +import org.gcube.common.storagehub.client.StreamDescriptor; +import org.gcube.common.storagehub.client.dsl.StorageHubClient; + +@Path("shub/{id}") +public class StorageHub { + + @RequestScoped + @PathParam("id") + String id; + + @GET + @Path("") + public Response download() { + StorageHubClient shc = new StorageHubClient(); + StreamDescriptor descriptor = shc.open(id).asFile().download(); + + return Response + .ok(descriptor.getStream()) + .header("content-disposition","attachment; filename = \""+descriptor.getFileName()+"\"").build(); + } + + @GET + @Path("{version}") + public Response downloadVersion(@PathParam("version") String version) { + StorageHubClient shc = new StorageHubClient(); + StreamDescriptor descriptor = shc.open(id).asFile().downloadSpecificVersion(version); + return Response + .ok(descriptor.getStream()) + .header("content-disposition","attachment; filename = \""+descriptor.getFileName()+"\"").build(); + } +}