package org.gcube.data.access.storagehub.storage.backend.impl; import java.util.HashMap; import java.util.Map; import java.util.UUID; import javax.annotation.PostConstruct; import javax.inject.Singleton; import org.gcube.common.storagehub.model.Constants; import org.gcube.common.storagehub.model.Metadata; import org.gcube.common.storagehub.model.exceptions.InvalidCallParameters; import org.gcube.common.storagehub.model.items.nodes.PayloadBackend; import org.gcube.common.storagehub.model.storages.StorageBackend; import org.gcube.common.storagehub.model.storages.StorageBackendFactory; @Singleton public class DefaultGcubeMinIoStorageBackendFactory implements StorageBackendFactory { private StorageBackend singleton; @PostConstruct public void init(){ Map params = new HashMap(); params.put("bucketName", "storagehub-default" ); params.put("key", "minio_admin" ); params.put("secret", "8334e0e6acb173a8f915026b1bc4c7" ); params.put("url", "https://minio.dev.d4science.org/" ); Metadata metadata = new Metadata(params); this.singleton = new S3Backend(new PayloadBackend(getName(), metadata), (String) -> UUID.randomUUID().toString()); } @Override public String getName() { return Constants.DEFAULT_MINIO_STORAGE; } @Override public StorageBackend create(PayloadBackend payloadConfiguration) throws InvalidCallParameters { if (payloadConfiguration.getParameters().isEmpty()) return singleton; else return new S3Backend(payloadConfiguration, (String) -> UUID.randomUUID().toString() ); } }