如何捕捉到 minIO 服务器的连接问题?
How to catch connection issues to minIO server?
我正在尝试在 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")
我似乎无法在使用假(错误)信用时捕获身份验证错误。它总是通过...关于如何解决这类问题有什么想法吗?
Minio()
只创建对象,不连接服务器。因此,对象创建也适用于伪造的凭据或伪造的 url 和参数,因为该对象暂时不用于连接某处。您的异常处理仅尝试捕获因简单 python 对象创建而引发的错误。
为了检查连接性,我尝试连接到一个不存在的存储桶。如果我收到一条错误消息,一切都很好,如果超时,您可以捕获并记录它。 (您也可以尝试连接到现有的存储桶,但这会增加检查 creating/reaching 此存储桶或存储中是否存在错误的复杂性)
#create object
client = Minio(
host,
access_key=user,
secret_key=pass,
more_access_data=...
)
# reach storage
try:
if not client.bucket_exists("nonexistingbucket"):
logging.debug("Object storage connected")
except:
# raise error if storage not reachable
logging.critical("Object storage not reachable")
如上所说:
To check the connectivity, I try to connect to a non existing bucket.
我不认为这是直观的,你为什么不使用 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 未处于活动状态,根据您的应用程序的上下文,启动时间将比平时稍长一些。
我正在尝试在 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")
我似乎无法在使用假(错误)信用时捕获身份验证错误。它总是通过...关于如何解决这类问题有什么想法吗?
Minio()
只创建对象,不连接服务器。因此,对象创建也适用于伪造的凭据或伪造的 url 和参数,因为该对象暂时不用于连接某处。您的异常处理仅尝试捕获因简单 python 对象创建而引发的错误。
为了检查连接性,我尝试连接到一个不存在的存储桶。如果我收到一条错误消息,一切都很好,如果超时,您可以捕获并记录它。 (您也可以尝试连接到现有的存储桶,但这会增加检查 creating/reaching 此存储桶或存储中是否存在错误的复杂性)
#create object
client = Minio(
host,
access_key=user,
secret_key=pass,
more_access_data=...
)
# reach storage
try:
if not client.bucket_exists("nonexistingbucket"):
logging.debug("Object storage connected")
except:
# raise error if storage not reachable
logging.critical("Object storage not reachable")
如上所说:
To check the connectivity, I try to connect to a non existing bucket.
我不认为这是直观的,你为什么不使用 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 未处于活动状态,根据您的应用程序的上下文,启动时间将比平时稍长一些。