diff --git a/pom.xml b/pom.xml index db68e6c..a598598 100644 --- a/pom.xml +++ b/pom.xml @@ -34,24 +34,36 @@ storage-manager-core [2.9.0-SNAPSHOT, 3.0.0-SNAPSHOT) - - software.amazon.awssdk - dynamodb - - - com.amazonaws - aws-lambda-java-core - 1.2.0 - - - software.amazon.awssdk - aws-sdk-java - 2.13.7 - + + + + + + + + + + + + + + + + software.amazon.awssdk + s3 + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/plugin/S3PluginManager.java b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/plugin/S3PluginManager.java index ec56254..130f6d3 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/plugin/S3PluginManager.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/plugin/S3PluginManager.java @@ -1,5 +1,6 @@ package org.gcube.contentmanagement.blobstorage.transport.plugin; +import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.net.UnknownHostException; @@ -21,7 +22,11 @@ import org.gcube.contentmanagement.blobstorage.service.operation.MoveDir; import org.gcube.contentmanagement.blobstorage.service.operation.Unlock; import org.gcube.contentmanagement.blobstorage.service.operation.Upload; import org.gcube.contentmanagement.blobstorage.transport.TransportManager; +import org.gcube.contentmanagement.blobstorage.transport.backend.MongoIOManager; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; +import org.gcube.contentmanagement.blobstorage.transport.plugin.Utils.Utils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.net.URI; @@ -50,8 +55,9 @@ public class S3PluginManager extends TransportManager { Region region = Region.US_EAST_1; final String END_POINT = "https://s3.wasabisys.com"; S3Client s3; + private Logger logger = LoggerFactory.getLogger(S3PluginManager.class); -// THE FOLLOWING FIELD SHOULD BE RETRIEVED FROM SERVICEENDPOINT +// THE FOLLOWING FIELDS SHOULD BE RETRIEVED FROM SERVICEENDPOINT static final String ACCESS_KEY="UXMKEBMZBDROS5K9HREG"; static final String SECRET_ACCESS_KEY="0Mqu8gmzcZ09wuqqKZwNmuS5bYC549MlZhvfgv6W"; static final String bucket="gcube-home-test-access"; @@ -62,6 +68,12 @@ public class S3PluginManager extends TransportManager { return "S3PluginManager"; } + public S3PluginManager() { + logger.info("S3PluginManager"); + + + } + public S3PluginManager(String[] server, String user, String pass, MemoryType memoryType, String[] dbNames, String writeConcern, String readConcern) { initBackend(server,user,pass, memoryType,dbNames, writeConcern, readConcern); @@ -79,12 +91,14 @@ public class S3PluginManager extends TransportManager { @Override public Object get(Download download) throws FileNotFoundException, IOException { - return BucketOperator.getInstance(s3).getObject(bucket, download.getRemotePath(), download.getLocalPath()); + return BucketOperator.getInstance(s3).getObject(bucket, Utils.convertToS3Format(download.getResource().getRemotePath()), download.getLocalPath()); } @Override public String put(Upload upload) throws FileNotFoundException, IOException { - return BucketOperator.getInstance(s3).getObject(bucket, upload.getRemotePath(), upload.getLocalPath()).toString(); + logger.info("put method invoked "); + File file= new File(upload.getResource().getLocalPath()); + return BucketOperator.getInstance(s3).putObject(bucket, Utils.convertToS3Format(upload.getResource().getRemotePath()), file).toString(); } @Override diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/plugin/Utils/Utils.java b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/plugin/Utils/Utils.java new file mode 100644 index 0000000..8c6b692 --- /dev/null +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/plugin/Utils/Utils.java @@ -0,0 +1,14 @@ +package org.gcube.contentmanagement.blobstorage.transport.plugin.Utils; + +import org.gcube.contentmanagement.blobstorage.transport.backend.util.Costants; + +public class Utils { + + public static String convertToS3Format(String objectName) { + if( objectName.substring(objectName.length()-1).contains(Costants.FILE_SEPARATOR)) { + objectName=objectName.substring(0, objectName.length()-1); + } + return objectName.replaceAll(Costants.FILE_SEPARATOR, "-"); + } + +}