Source code for cloud_storage_handler.api.elixircloud.csh.client
"""MinIO client class and convenience functions."""importloggingfromconnexionimportFlaskAppfromminioimportMiniofromcloud_storage_handler.api.elixircloud.csh.modelsimportMinioConfiglogger=logging.getLogger(__name__)
[docs]defcreate_bucket(self)->None:"""Create bucket if it does not exist."""ifnotself.client.bucket_exists(self.config.bucket_name):self.client.make_bucket(self.config.bucket_name)logger.info(f"Bucket '{self.config.bucket_name}' created.")else:logger.debug(f"Bucket '{self.config.bucket_name}' already exists.")
[docs]defregister_minio_client(app:FlaskApp)->FlaskApp:"""Register MinIO client and create bucket. Args: app: Connexion Flask app instance. Returns: Connexion Flask app instance with a MinIO client instance added to its config. """minio_client=MinioClient(config=app.app.config.foca.custom.minio)minio_client.create_bucket()app.app.config.foca.custom.minio.client=minio_clientlogger.info("MinIO client registered.")returnapp