我配置好了ssl证书给Minio服务,如何使用python API访问呢?
很多同学使用以下代码连接时会报错的
import minio
MINIO_CONF = {
'endpoint': '10.0.0.2:9000',
'access_key': 'gdzs',
'secret_key': 'gdzs',
'secure': True
}
client = minio.Minio(**MINIO_CONF)
------------------
报错信息:
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='10.0.0.2', port=9000): Max
retries exceeded with url: / (Caused by
SSLError(SSLCertVerificationError(1, '[SSL:
CERTIFICATE_VERIFY_FAILED] certificate verify
failed: self signed certificate (_ssl.c:1129)')))
把你生成的ssl证书crt,从minio的服务器上下载下来到开发机器上(就是你要写python代码的机器上)
然后使用以下代码
import minio
import os
os.environ['SSL_CERT_FILE'] = r"public.crt"
MINIO_CONF = {
'endpoint': '10.0.0.2:9000',
'access_key': 'gdzs',
'secret_key': 'gdzs',
'secure': True
}
client = minio.Minio(**MINIO_CONF)
# 获取桶列表
buck_list = client.list_buckets()
print(buck_list)
buck_obj_list = client.list_objects("whiteAPK")
把minio的public.crt的证书内容复制到cacert.pem中即可,设置后正常开启source:True即可访问
这个文件的路径在解释器的路径为:Lib/site-packages/certifi/cacert.pem
因为minio开启https后就无法使用http访问,所以使用’secure’: False也是不行的
我们可以通过看源码就知道了 可以看到源码中用了一个三目运算符根据secure来判断使用https还是http😂
设置公钥,因为python ssl连接时就会找到对应的公钥就可以了
minio-python-doc
搜索专用关键词:
python使用https连接Minio
mino配置SSL使用Python 连接