python 连接配置SSL证书的Minio服务

python 连接配置SSL证书的Minio服务

1. 需求

我配置好了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)')))

2. 解决方法

方案1

把你生成的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")

方案2

把minio的public.crt的证书内容复制到cacert.pem中即可,设置后正常开启source:True即可访问

在这里插入图片描述
这个文件的路径在解释器的路径为:Lib/site-packages/certifi/cacert.pem
在这里插入图片描述

3. 问题分析

  1. 因为minio开启https后就无法使用http访问,所以使用’secure’: False也是不行的
    我们可以通过看源码就知道了 可以看到源码中用了一个三目运算符根据secure来判断使用https还是http😂
    在这里插入图片描述

  2. 设置公钥,因为python ssl连接时就会找到对应的公钥就可以了

5. 其他

5.1 友链

minio-python-doc
搜索专用关键词:
python使用https连接Minio
mino配置SSL使用Python 连接

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要使用Python API连接Minio,你需要先下载并配置SSL证书。你可以通过以下步骤来连接Minio: 1. 从Minio服务器上下载SSL证书crt文件,并将其保存到你的开发机器上。你可以使用以下代码来指定证书文件的路径: ```python import os os.environ\['SSL_CERT_FILE'\] = r"path/to/public.crt" ``` 2. 导入`minio`库并创建Minio客户端对象。你需要提供Minio服务器的相关信息,包括`endpoint`、`access_key`和`secret_key`。如果你的Minio服务器是通过HTTPS进行连接的,你还需要将`secure`参数设置为`True`。以下是一个示例代码: ```python import minio MINIO_CONF = { 'endpoint': '10.0.0.2:9000', 'access_key': 'gdzs', 'secret_key': 'gdzs', 'secure': True } client = minio.Minio(**MINIO_CONF) ``` 3. 现在你可以使用Minio客户端对象来执行各种操作,比如获取桶列表或列出桶中的对象。以下是一些示例代码: ```python # 获取桶列表 buck_list = client.list_buckets() print(buck_list) # 列出指定桶中的对象 buck_obj_list = client.list_objects("whiteAPK") ``` 这样你就可以使用Python API连接Minio并执行相应的操作了。如果你遇到了SSL证书验证失败的问题,可以尝试使用方案2中提供的解决方法。 #### 引用[.reference_title] - *1* *2* [python 连接配置SSL证书Minio服务](https://blog.csdn.net/weixin_44331765/article/details/127731143)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【高可用对象存储实战】使用Python操作Minio存储桶](https://blog.csdn.net/Deaohst/article/details/128699370)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值