时间:2024.05.14
环境:
腾讯云服务器 操作系统版本:CentOS Stream release 9
MinIO版本: RELEASE.2024-05-10T01-41-38Z
目的:安装MinIO 配置Buckets和Access Keys 简单演示上传、查看和下载
说明:
作者:Zhong
简介
MinIO是一款开源的高性能的分布式存储 安装简单 使用和管理维护方便
下载和安装
Binary下载
wget https://dl.min.io/server/minio/release/linux-amd64/minio
修改为可执行文件
chmod +x minio
添加到path 方便在全局直接使用minio服务
sudo mv minio /usr/local/bin/
启动MinIO 指定用户名和密码 指定数据盘 --console指定控制端口 --address指定api端口
其中 用户名、密码和端口号都是可选项 如不指定会使用默认的设置 在启动服务后会将基本信息如api端口号、控制端口号输出到屏幕 如使用默认设置启动服务:./minio server /mnt/data 那么API和WebUI默认的用户名和密码则为minioadmin/minioadmin(版本不同可能有所不同) 在屏幕可以看到相关信息的展示
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=Zhong2008 minio server /mnt/data --console-address ":20001" --address ":20000"
配置
服务启动后 在浏览器打开Web管理页面 url为 your ip:20001 使用指定的用户名和密码登录系统
创建Bucket
在Buckets菜单创建Bucket 每个Bucket是相互独立的空间 默认访问策略为Private 根据需求修改策略(如上传为Private 下载为Public)
在Buckets找到创建的Bucket 点进来找到Anonymous 然后 Add Access Rule 填写Prefix(根据需求填写路径参数 支持正则表达式 这儿为* 表示这个Bucket所有文件不需要认证即可访问) Access选择readonly
创建Access Key
在Access Key菜单创建访问Key 记住Access Key和Secret Key 在客户端使用时需要 其它信息按需填写
客户端连接
配置了Access Key 就可以通过客户端程序连接使用MinIO上传、查看、下载文件了 如golang、python、java等等 一般都会有相应的插件、驱动程序
上传和下载
我们平时使用MinIO 大多都是在开发时使用程序连接到MinIO来上传、下载文件 如golang、RUST、Python等语言开发 这儿简单演示下载web管理页面上传、查看、下载文件 点Upload按钮选择本地文件上传 选择文件是时右侧会显示下载、共享、预览和文件的基本信息等数据 也可以通过 your ip:20000/oa-blog/wushi.jpg 来访问查看文件 格式为:ip:端口号/Bucket名称/文件名称全称
使用supervisor管理
新建用于supervisor管理的MinIO配置文件如 minio.ini 文件 写入如下的配置即可
[program:minio]
command=minio server /mnt/data --console-address ":20001" --address ":20000"
environment=MINIO_ROOT_USER=admin,MINIO_ROOT_PASSWORD=Zhong2008
user=root
autostart = true
autorestart = true
startsecs = 5
startretries=3
stopasgroup=true
stopsignal=TERM
stopwaitsecs=5
numprocs=1
redirect_stderr=true
stderr_logfile=/usr/local/release/minio.err.log
stdout_logfile=/usr/local/release/minio.out.log
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=10
stdout_capture_maxbytes=10MB
开机启动
备份/恢复数据
MinIO提供了不同的方式备份数据 下面介绍一种本地备份数据的方式
备份数据
下载配置MinIO客户端程序
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
给MinIO设置别名 格式:./mc alias set 别名 http://ip:port username password
./mc alias set minio888 http://127.0.0.1:20000 admin Zhong2008
查看server数据
[root@VM-4-6-centos ~]# ./mc ls minio888
[2024-05-13 15:37:33 CST] 0B oa-blog/
[root@VM-4-6-centos ~]# ./mc ls minio888 --recursive
[2024-06-04 09:31:56 CST] 93KiB STANDARD oa-blog/123.png
[2024-06-03 17:06:39 CST] 30KiB STANDARD oa-blog/wushi.jpg
[root@VM-4-6-centos ~]# ./mc ls minio888/oa-blog
[2024-06-04 09:31:56 CST] 93KiB STANDARD 123.png
[2024-06-03 17:06:39 CST] 30KiB STANDARD wushi.jpg
复制数据到本地指定的路径 格式: ./mc cp minio别名/桶名称 本地路径 --recursive 可根据需求指定要复制的MinIO[桶/文件] 下面为复制oa-blog桶数据到本地当前路径下的backup目录
./mc cp minio888/oa-blog ./backup --recursive
复制完成后 backup目录的结构和数据与server一一对应
恢复数据
注意备份文件和MinIO的路径 如果在别的服务器上操作 也需要设置别名 以下操作为上传本地目录backup/oa-blog下的所有文件到server的oa-blog桶 路径根据需求指定
./mc cp ./backup/oa-blog/* minio888/oa-blog --recursive