Python使用minio上传文件时urllib3的SSL报错
问题出现
minio的服务器一直使用的是http进行访问,但是最近因为业务要求,全部都换成了https请求。换成https之后,上传文件就会报此错:urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host=‘10.10.30.241’, port=9000): Max retries exceeded with url: /facebook?location= (Caused by SSLError(SSLCertVerificationError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate (_ssl.c:1124)’)))
解决方法一
因为我看到了报错是urllib报错,所以我直接去翻了urllib源码,直接修改了urllib3源码得以解决.
修改文件是:connectionpool.py
修改connectionpool.py文件第775行:
self.cert_reqs = 'CERT_NONE'
解决方法二
第一个方法解决是解决了,但是极其不方便。
因为你要换地方部署脚本或者重新安装时,每次都需要进源码修改。
之后我又翻了minio源码,找到了问题所在
minio里面的urliib并没有关闭ssl验证,我本来想在这里改,但是想到在这里改还是修改源码啊,我仔细看了下发现个参数:http_client
我们只需要在创建minio对象的时候自定义这个参数就可以了
minioClient = Minio(
'1.1.1.1:9000',
access_key='mxxxxxxx',
secret_key='mxxxxxxx',
http_client=urllib3.PoolManager(
timeout=urllib3.util.Timeout(connect=10, read=10),
maxsize=10