MinIO
本文最后更新于 2026年8月28日
1.概述
MinIO是一个对象存储解决方案,它基于GO语言编写,提供了与Amazon S3兼容的API,并支持部署在服务器,Docker或K8s。
本文基于minio RELEASE.2024-07-29T22-14-52Z
2.服务端
2.1 二进制文件部署服务端
需要在相同shell环境,通过环境变量设置根用户用户名和密码
export MINIO_ROOT_PASSWORD=
export MINIO_ROOT_USER=minio server 命令启动MinIO服务器. 这个路径参数/opt/miniodata确定服务器操作的文件夹。
nohup ./minio server /opt/minio/miniodata \
--config-dir /opt/minio/minioconfig \
--console-address ":13399" \
--address ":13487" > minio.log &2.2 Docker部署服务端
docker run -d \
-p 3399:3399 \
-p 3487:3487 \
--name minio \
-e "MINIO_ACCESS_KEY=12345678" \
-e "MINIO_SECRET_KEY=12345678" \
-v /opt/minio/data:/data \
-v /opt/minio/config:/root/.minio \
minio/minio server /data --console-address ":3399" -address ":3487"3.客户端
MinIO客户端mc命令行工具提供了一个现代化的替代方案, 支持文件系统和与Amazon S3兼容的云存储服务,适用于UNIX命令如 ls 、 cat 、 cp 、 mirror 和 diff 。
客户端命令的基本格式:
mc [GLOBALFLAGS] COMMAND --help3.1 下载
- Linux x86: https://dl.minio.org.cn/client/mc/release/linux-amd64/mc
- Linux Arm: https://dl.minio.org.cn/client/mc/release/linux-arm64/mc
3.2 管理客户端 admin
测试连接,myminio为之前通过alias命令设置好的某个服务端的别名
[root@QNXGXUUAOAW012 opt]# ./mc admin info myminio
● 127.0.0.1:13487
Uptime: 10 months
Version: 2024-07-31T05:46:26Z
Network: 1/1 OK
Drives: 1/1 OK
Pool: 1
┌──────┬───────────────────────┬─────────────────────┬──────────────┐
│ Pool │ Drives Usage │ Erasure stripe size │ Erasure sets │
│ 1st │ 16.0% (total: 91 GiB) │ 1 │ 1 │
└──────┴───────────────────────┴─────────────────────┴──────────────┘
773 MiB Used, 1 Bucket, 656 Objects
1 drive online, 0 drives offline, EC:03.3 别名 alias
alias set将目标服务端http://127.0.0.1:13487设置为本地的别名myminio
[root@QNXGXUUAOAW012 opt]# ./mc alias set myminio http://127.0.0.1:13487 19j**********5UmjZW zl0Fnit****************J8ANekt
Added `myminio` successfully.
[root@QNXGXUUAOAW012 opt]# 3.4 拷贝文件 cp
递归拷贝服务端的uni******siaBucket(桶)下/2025/10/16路径下的所有文件到本地/opt/backup目录
[root@QNXGXUUAOAW012 opt]# ./mc cp myminio/uni******sia/2025/10/16 /opt/backup --recursive
...e865ea0bb3c698e394b85ab3.png: 61.36 KiB / 61.36 KiB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 4.63 MiB/s 0s
[root@QNXGXUUAOAW012 opt]#4.部署运维
生产环境需要用nginx反向代理时,官方文档提供了两种方案,相同子域名和不同子域名,这里先以相同子域名为例
如文件传输和管理控制台端口采用同一子域名minio.example.com,则nginx配置如下
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name minio.example.com;
client_max_body_size 100m;
# 代理到其他端口
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 300;
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;
proxy_pass http://127.0.0.1:13487;
}
location /minio/ui/ {
rewrite ^/minio/ui/(.*) /$1 break;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
# This is necessary to pass the correct IP to be hashed
real_ip_header X-Real-IP;
proxy_connect_timeout 300;
# To support websockets in MinIO versions released after January 2023
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Some environments may encounter CORS errors (Kubernetes + Nginx Ingress)
# Uncomment the following line to set the Origin request to an empty string
# proxy_set_header Origin '';
chunked_transfer_encoding off;
proxy_pass http://127.0.0.1:13399;
}
}
同时,minio的环境变量必须指定MINIO_BROWSER_REDIRECT_URL
export MINIO_BROWSER_REDIRECT_URL="https://minio.example.com/minio/ui""如果文章对您有帮助,可以请作者喝杯咖啡吗?"
微信支付
支付宝