当前位置: 首页 > news >正文

docker搭建minio和python使用minio

1 准备工作

1.创建目录

[root@k8s-storage tmp]# mkdir -pv minio/{data,conf}
mkdir: created directory ‘minio’
mkdir: created directory ‘minio/data’
mkdir: created directory ‘minio/conf’[root@k8s-storage minio]# chmod 777 -R *

2.生成https证书

openssl req -x509 -newkey rsa:2048 \-keyout minio.key \-out minio.crt \-days 36500 \-nodes \-subj "/CN=harbor.test.info" \-addext "subjectAltName = DNS:harbor.test.info, DNS:test.com, IP:192.168.1.100, IP:12.3.3.4"[root@k8s-storage minio]# ls
conf  data  minio.crt  minio.key

2 启动minio

容器的9090是web管理端口

容器的9000是数据传输端口

docker run -d \--restart unless-stopped \--name minio02 \-p 9001:9000 \-p 9091:9090 \-v ./data:/data \-v ./conf:/root/.minio \-v ./minio.crt:/root/.minio/certs/public.crt \-v ./minio.key:/root/.minio/certs/private.key \-e MINIO_ROOT_USER=admin \-e MINIO_ROOT_PASSWORD=Wzy666@123 \minio/minio server /data --console-address ":9090"
[root@k8s-storage minio]# docker ps -a | grep minio02
66a187075694   minio/minio                          "/usr/bin/docker-ent…"   13 seconds ago   Up 13 seconds           0.0.0.0:9001->9000/tcp, :::9001->9000/tcp, 0.0.0.0:9091->9090/tcp, :::9091->9090/tcp   minio02

3 设置bucket和密钥

访问web管理控制台

在这里插入图片描述

创建bucket

在这里插入图片描述

设置访问凭证

在这里插入图片描述

4 python代码测试

from minio import Minio
from minio.error import S3Error, InvalidResponseError, ServerError
import urllib3# 配置信息
endpoint = "192.168.12.219:9001"
access_key = "MAyial2kEzrxGtm5SCYa"
secret_key = "v4j2AQZGsqHBcJTO3ei42upopMQG7f7wpS5ji5sU"
bucket_name = "gitlab-runner-cache-maven"
object_name = "test.txt"  # 存储在 MinIO 中的对象名称
local_upload_file = "./python-file/upload-python.txt"
local_download_file = "./python-file/downloaded-python.txt"
# 创建自定义HTTP客户端(禁用SSL验证)
http_client = urllib3.PoolManager(cert_reqs='CERT_NONE',  # 禁用SSL证书验证assert_hostname=False
)# 创建 MinIO 客户端(使用HTTPS协议并禁用SSL验证)
client = Minio(endpoint,access_key=access_key,secret_key=secret_key,secure=True,  # 使用HTTPS协议http_client=http_client  # 自定义HTTP客户端
)def upload_file():try:# 确保 bucket 存在found = client.bucket_exists(bucket_name)if not found:print(f"Bucket '{bucket_name}' 不存在")return# 上传文件client.fput_object(bucket_name, object_name, local_upload_file)print(f"✅ 上传成功: {local_upload_file}{bucket_name}/{object_name}")except (S3Error, InvalidResponseError, ServerError) as err:print(f"❌ 上传失败: {err}")raisedef download_file():try:# 下载文件client.fget_object(bucket_name, object_name, local_download_file)print(f"✅ 下载成功: {bucket_name}/{object_name}{local_download_file}")except (S3Error, InvalidResponseError, ServerError) as err:print(f"❌ 下载失败: {err}")raiseif __name__ == "__main__":try:upload_file()download_file()except Exception as e:print(f"操作过程中发生致命错误: {e}")

在这里插入图片描述

5 查看bucket里的文件

5 查看bucket里的文件

在这里插入图片描述

http://www.dtcms.com/a/263144.html

相关文章:

  • C++之AVL树的介绍以及AVL树自我实现
  • 计算机网络第一章——计算机网络体系结构
  • Junit_注解_枚举
  • K8S初始化master节点不成功kubelet.service failed(cgroup driver配置问题)
  • 基于vue+View UI的组织机构选择
  • 【计算机网络架构】总线型架构简介
  • 基于MATLAB的SVM支持向量机的乳腺癌分类方法应用
  • docker安装RabbitMQ,创建RabbitMQ容器
  • 选择排序算法详解
  • 云原生微服务架构搭建与部署全流程及样例
  • Blender设置物体绕轴环绕
  • 小白excel中使用VBA
  • Excel Report
  • 深度学习03 人工神经网络ANN
  • 07-three.js Debug UI
  • 商品类目一览
  • VBA代码解决方案第二十六讲:如何新建EXCEL工作簿文件
  • 【桶排序介绍】
  • 京东币链科技严正声明:澄清稳定币及合作虚假信息,暂未设立相关社区
  • 【Python基础】10 第三方库的力量:从数据处理到应用开发的全景实践
  • conda 常用指令
  • Reactor 瞬态错误
  • NLP文本数据增强
  • 配置conda虚拟环境时出现ProxyError怎么解决?
  • Ollama 深度使用指南:在本地玩转大型语言模型
  • OpenLayers 自定义拖动事件
  • Webpack优化详解
  • 运营商智能化升级:破局客服、外呼、质检的“数智神经中枢”革命
  • torchvision中的数据使用
  • Maven 中,dependencies 和 dependencyManagement