diff --git a/src/main/java/org/gcube/datatransfer/resolver/services/StorageIDResolver.java b/src/main/java/org/gcube/datatransfer/resolver/services/StorageIDResolver.java index 73a9492..2e132d6 100644 --- a/src/main/java/org/gcube/datatransfer/resolver/services/StorageIDResolver.java +++ b/src/main/java/org/gcube/datatransfer/resolver/services/StorageIDResolver.java @@ -56,6 +56,7 @@ public class StorageIDResolver { private static String help = "https://wiki.gcube-system.org/gcube/URI_Resolver#STORAGE-ID_Resolver"; protected static IClient storageManagerClient; + private static MemoryType memory; /** * Gets the storage id. @@ -140,9 +141,8 @@ public class StorageIDResolver { // LOG.error("Storage Client Exception when getting file from storage: ", e); // throw ExceptionManager.notFoundException(httpRequest, "Storage Client Exception when getting file from storage with id: "+storageId, StorageIDResolver.class, help); // } - - - IClient iClient = getStorageClientInstance(storageId); + storageId = identifyIdAndMemory(storageId); + IClient iClient = getStorageClientInstance(memory); String toSEID = null; LOG.info("I'm using the storageId {}",storageId); try{ @@ -209,6 +209,9 @@ public class StorageIDResolver { return response.build(); } + + + /** @@ -288,7 +291,8 @@ public class StorageIDResolver { // } - IClient iClient = getStorageClientInstance(storageId); + storageId = identifyIdAndMemory(storageId); + IClient iClient = getStorageClientInstance(memory); String toSEID = null; LOG.info("I'm using the storageId {}",storageId); try{ @@ -394,14 +398,7 @@ public class StorageIDResolver { * @param storageId the storage id * @return the storage client instance */ - protected static IClient getStorageClientInstance(String storageId) { - MemoryType memory=null; - if(storageId.endsWith(org.gcube.contentmanagement.blobstorage.transport.backend.util.Costants.VOLATILE_URL_IDENTIFICATOR)){ - memory=MemoryType.VOLATILE; - storageId=storageId.replace(org.gcube.contentmanagement.blobstorage.transport.backend.util.Costants.VOLATILE_URL_IDENTIFICATOR, ""); - }else { - memory=MemoryType.PERSISTENT; - } + protected static IClient getStorageClientInstance(MemoryType memory) { if ((!Objects.isNull(storageManagerClient)) && (storageManagerClient.getGcubeMemoryType().equals(memory))) return storageManagerClient; else { @@ -415,6 +412,17 @@ public class StorageIDResolver { } } + private static String identifyIdAndMemory(String storageId) { + if(storageId.endsWith(org.gcube.contentmanagement.blobstorage.transport.backend.util.Costants.VOLATILE_URL_IDENTIFICATOR)){ + LOG.info("identificated a VOLATILE url"); + memory=MemoryType.VOLATILE; + storageId=storageId.replace(org.gcube.contentmanagement.blobstorage.transport.backend.util.Costants.VOLATILE_URL_IDENTIFICATOR, ""); + }else { + memory=MemoryType.PERSISTENT; + } + return storageId; + } + /** * Gets the storage metadata file. *