首页 > 解决方案 > 如何捕捉到 minIO 服务器的连接问题?

问题描述

我正在尝试在 Python 客户端上为 minio(minio 包)捕获身份验证错误:

from minio import Minio
from minio.error import MinioError, ResponseError

## Data Lake (Minio)
try :
    minioClient = Minio(endpoint= config['databases']['datalake']['hostip']+":"+config['databases']['datalake']['port'],
                access_key= config['databases']['datalake']['accesskey'],
                secret_key= config['databases']['datalake']['secretkey'],
                secure= False)

    app.logger.info("MinIO Server Connected!")

except MinioError as e:
    app.logger.info("Could not connect to MinIO Server")

使用假(错误)凭据时,我似乎无法捕捉到身份验证错误。它总是通过......关于如何捕捉这些问题的任何想法?

标签: pythonamazon-s3minio

解决方案


如上所述:

为了检查连接性,我尝试连接到一个不存在的存储桶。

我不认为这很直观,为什么不使用list_buckets()代替,例如:

from urllib3.exceptions import MaxRetryError

self.config = {
    "endpoint": "localhost:9000",
    "access_key": "minioadmin",
    "secret_key": "minioadmin",
    "secure": False,
    "http_client": urllib3.PoolManager(
        num_pools=10,
        )
    }

try:
    self.client = Minio(**self.config)
    self.client.list_buckets()
except MaxRetryError:
    logging.critical("Object storage not reachable")

重要的是要通知,如果 Minio 不存在,根据您的应用程序的上下文,启动时间将比平时长一点。

推荐阅读