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

在将Minio服务器从HTTP切换到HTTPS后,遇到urllib3 SSL证书验证失败的问题。通过两种方法解决了该问题:一是直接修改urllib3的connectionpool.py源码,设置cert_reqs为'CERT_NONE';二是自定义http_client参数,创建Minio对象时关闭SSL验证。附带了完整的Minio文件上传Python代码。
最低0.47元/天 解锁文章
5403

被折叠的 条评论
为什么被折叠?



