46 lines
1.5 KiB
Java
46 lines
1.5 KiB
Java
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<String, Object> params = new HashMap<String, Object>();
|
|
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() );
|
|
}
|
|
|
|
}
|