什么是Minio?
MinIO 是一个开源的对象存储服务器,具有高可用性、高性能和可伸缩性。它兼容 Amazon S3 API,因此可以无缝地替代 Amazon S3 作为对象存储的解决方案。
MinIO 可以让你在自己的基础设施中搭建一个对象存储服务,使你能够存储和检索任意类型的数据,例如图像、视频、文档等。你可以使用 MinIO 提供的 API 进行数据的上传、下载和管理,也可以通过 MinIO 客户端库在应用程序中与 MinIO 进行交互。
MiniO官网:MinIO | 高性能, Kubernetes 原生对象存储
下载Minio
可通过这个链接下载minio.exe文件。下载完成后,在minio.exe所在目录下进入cmd,输入:
minio.exe server D:\ 希望启动minio服务目录的路径
sever:指定minio server的管道操作,如果在不指定具体操作,如:start(启动)、stop(停止)、restart(重启)
红色文字处自行修改。
按下Ctrl+鼠标左键点击http://127.0.0.1:9000进入浏览器页面并使用 root 凭据登录。您可以使用浏览器创建存储桶、上传对象和浏览 MinIO 服务器的内容。
默认的RootUser和RootPass均为minioadmin。
进入MinIO控制台,如下图所示:
创建桶
创建bucket。点击Buckets—>Create Bucket
自行命名
使用Python交互实现文件上传并获取可分享链接
新建一个虚拟环境,下面仅供参考:
conda create -n Minio python=3.7
pip命令安装
pip install minio
导入minio包,创建客户端
import minio
import osclient = minio.Minio(endpoint='192.168.43.128:9000',access_key='minioadmin',secret_key='minioadmin',secure=False
)
通过client.bucket_exists()函数直接进行存储桶的查询,添加参数“bucket_name”,为了防止因存储桶不存在而无法上传的情况,先使用条件语句判断。
if client.bucket_exists("computerversion"):
没有问题的话,就用with open打开我们的文件:
with open("ikun.mp4", "rb") as file_data:bytes_length = os.path.getsize("ikun.mp4")client.put_object("computerversion", "ikun.mp4", file_data, bytes_length)url = client.presigned_get_object("computerversion", "ikun.mp4")print(url)
全部代码:
import minio
import osclient = minio.Minio(endpoint='192.168.43.128:9000',access_key='minioadmin',secret_key='minioadmin',secure=False
)if client.bucket_exists("computerversion"):with open("ikun.mp4", "rb") as file_data:bytes_length = os.path.getsize("ikun.mp4")client.put_object("computerversion", "ikun.mp4", file_data, bytes_length)url = client.presigned_get_object("computerversion", "ikun.mp4")print(url)
控制台输出:
Ctrl+左键打开URL,文件在浏览器中下载。
再次打开Minio控制台并刷新。
文件上传成功!
Windows的API文档
MinIO Object Storage for Windows — MinIO Object Storage for Windows
进去也能查看其他语言的API。这里只是搭建测试的一个简单示例,后面会有更多的开发。
参考文章
(2条消息) MinIO在Windows的部署与简单使用_minio windows部署_半岛铁子_的博客-CSDN博客
(2条消息) 【高可用对象存储实战】使用Python操作Minio存储桶_minio python_Day(AKA Elin)的博客-CSDN博客