diff --git a/application-engine/src/main/java/com/netgrif/application/engine/files/minio/MinIoHostInfo.java b/application-engine/src/main/java/com/netgrif/application/engine/files/minio/MinIoHostInfo.java index e2ad416450..6412d2fcd3 100644 --- a/application-engine/src/main/java/com/netgrif/application/engine/files/minio/MinIoHostInfo.java +++ b/application-engine/src/main/java/com/netgrif/application/engine/files/minio/MinIoHostInfo.java @@ -9,4 +9,5 @@ public class MinIoHostInfo { private String host; private String user; private String password; + private Map bucketAliases; } diff --git a/application-engine/src/main/java/com/netgrif/application/engine/files/minio/MinIoStorageService.java b/application-engine/src/main/java/com/netgrif/application/engine/files/minio/MinIoStorageService.java index 1d80eccd17..b482f340b5 100644 --- a/application-engine/src/main/java/com/netgrif/application/engine/files/minio/MinIoStorageService.java +++ b/application-engine/src/main/java/com/netgrif/application/engine/files/minio/MinIoStorageService.java @@ -50,15 +50,13 @@ public String getType() { @Override public Storage createStorage(Data data) { - Storage storage = new MinIoStorage(); + MinIoStorage storage = new MinIoStorage(); if (!properties.getMinIo().isEnabled()) { throw new StorageNotEnabledException("Storage of type [" + MINIO_TYPE + "] is not enabled."); } if (data.getStorage().getHost() != null) { storage.setHost(data.getStorage().getHost()); - } - if (data.getStorage().getBucket() != null) { - ((MinIoStorage) storage).setBucket(getBucketOrDefault(data.getStorage().getBucket())); + storage.setBucket(getBucketOrDefault(storage.getHost(), data.getStorage().getBucket())); } return storage; } @@ -149,8 +147,8 @@ public String getPath(String caseId, String fieldId, String name) { return caseId + "/" + fieldId + "-" + name; } - public static String getBucketOrDefault(String bucket) { - return bucket != null ? bucket : StorageConfigurationProperties.MinIoStorageProperties.DEFAULT_BUCKET; + public String getBucketOrDefault(String host, String bucket) { + return bucket != null ? getMappedBucketIfExists(host, bucket) : StorageConfigurationProperties.MinIoStorageProperties.DEFAULT_BUCKET; } protected MinioClient client(String host) { @@ -159,4 +157,14 @@ protected MinioClient client(String host) { .credentials(properties.getMinIo().getHosts(host).getUser(), properties.getMinIo().getHosts(host).getPassword()) .build(); } + + protected String getMappedBucketIfExists(String host, String aliasKey) { + MinIoHostInfo hostInfo = properties.getMinIo().getHosts(host); + if (hostInfo != null + && hostInfo.getBucketAliases() != null + && hostInfo.getBucketAliases().containsKey(aliasKey)) { + return hostInfo.getBucketAliases().get(aliasKey); + } + return aliasKey; + } } diff --git a/application-engine/src/main/java/com/netgrif/application/engine/files/minio/StorageConfigurationProperties.java b/application-engine/src/main/java/com/netgrif/application/engine/files/minio/StorageConfigurationProperties.java index 3bcc81cca6..473f0f4d37 100644 --- a/application-engine/src/main/java/com/netgrif/application/engine/files/minio/StorageConfigurationProperties.java +++ b/application-engine/src/main/java/com/netgrif/application/engine/files/minio/StorageConfigurationProperties.java @@ -2,7 +2,6 @@ import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; import java.util.Map; diff --git a/application-engine/src/main/java/com/netgrif/application/engine/startup/runner/StorageRunner.java b/application-engine/src/main/java/com/netgrif/application/engine/startup/runner/StorageRunner.java index 87df6cbcde..f4b95994e0 100644 --- a/application-engine/src/main/java/com/netgrif/application/engine/startup/runner/StorageRunner.java +++ b/application-engine/src/main/java/com/netgrif/application/engine/startup/runner/StorageRunner.java @@ -5,7 +5,6 @@ import com.netgrif.application.engine.startup.annotation.RunnerOrder; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.ApplicationArguments; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Component; diff --git a/application-engine/src/main/resources/application-dev.yaml b/application-engine/src/main/resources/application-dev.yaml index 13937c1cc4..44ad276979 100644 --- a/application-engine/src/main/resources/application-dev.yaml +++ b/application-engine/src/main/resources/application-dev.yaml @@ -25,6 +25,8 @@ netgrif: host: http://127.0.0.1:9000 user: root password: password + bucket-aliases: + pistucket: uat-pistucket swagger: enabled: true security: