Minio minio.error.SignatureDoesNotMatch 抛出 try-except
Minio minio.error.SignatureDoesNotMatch thrown with try-except
我正在为 minio 服务器使用 python 包。我有以下用于登录的代码:
from minio.error import [...], SignatureDoesNotMatch, [...]
def login(self):
try:
self.user = Minio(MINIO_CONFIG['MINIO_ENDPOINT'],
access_key=self.username,
secret_key=self.password,
secure=MINIO_CONFIG['MINIO_SECURE'])
return {"msg":"User is now logged in", "status": "OK"}
except SignatureDoesNotMatch as err:
return {"msg": err.message, "status":"F"}
except ResponseError as err:
return {'msg': err.message, 'status': "F"}
except InvalidAccessKeyId as err:
return {"msg": err.message, "status":"F"}
except InvalidArgument as err:
return {"msg": err.message, "status":"F"}
except InvalidArgumentError as err:
return {"msg": err.message, "status":"F"}
我面临的问题是,即使我在 try-except
SignatureDoesNotMatch
中有 SignatureDoesNotMatch
以防凭据不正确,它也不会 return 我的消息应该,但它会抛出一个 minio.error.SignatureDoesNotMatch
。为什么会这样?
我得到的错误:
minio.error.SignatureDoesNotMatch: SignatureDoesNotMatch: message: The request signature we calculated does not match the signature you provided.
这看起来不错,查看代码,无论提供的凭据如何,它都不会 运行 自己出错。当它进行 API 调用时,或者当您使用此 self.user
实例调用 list_buckets
、list_objects
等方法时,它只会 运行 出错,来自在这个街区之外。
我想你想做的是——从这个封装之外调用 list_buckets
等方法——在代码的这一部分之外的其他地方,然后它们产生这个错误并传播它们到控制台。您不能将 MinIO
实例封装在 try-catch
中,并在您从 try-catch
块外部使用 self.user.list_buckets()
之类的东西时捕获错误。
我正在为 minio 服务器使用 python 包。我有以下用于登录的代码:
from minio.error import [...], SignatureDoesNotMatch, [...]
def login(self):
try:
self.user = Minio(MINIO_CONFIG['MINIO_ENDPOINT'],
access_key=self.username,
secret_key=self.password,
secure=MINIO_CONFIG['MINIO_SECURE'])
return {"msg":"User is now logged in", "status": "OK"}
except SignatureDoesNotMatch as err:
return {"msg": err.message, "status":"F"}
except ResponseError as err:
return {'msg': err.message, 'status': "F"}
except InvalidAccessKeyId as err:
return {"msg": err.message, "status":"F"}
except InvalidArgument as err:
return {"msg": err.message, "status":"F"}
except InvalidArgumentError as err:
return {"msg": err.message, "status":"F"}
我面临的问题是,即使我在 try-except
SignatureDoesNotMatch
中有 SignatureDoesNotMatch
以防凭据不正确,它也不会 return 我的消息应该,但它会抛出一个 minio.error.SignatureDoesNotMatch
。为什么会这样?
我得到的错误:
minio.error.SignatureDoesNotMatch: SignatureDoesNotMatch: message: The request signature we calculated does not match the signature you provided.
这看起来不错,查看代码,无论提供的凭据如何,它都不会 运行 自己出错。当它进行 API 调用时,或者当您使用此 self.user
实例调用 list_buckets
、list_objects
等方法时,它只会 运行 出错,来自在这个街区之外。
我想你想做的是——从这个封装之外调用 list_buckets
等方法——在代码的这一部分之外的其他地方,然后它们产生这个错误并传播它们到控制台。您不能将 MinIO
实例封装在 try-catch
中,并在您从 try-catch
块外部使用 self.user.list_buckets()
之类的东西时捕获错误。