minio兼容亚马逊s3对象存储建立自己的对象存储2026.3.6更新,minio现在几乎已经完全不开源了,建议清理不再使用minio官网一、安装minio和mc管理工具官网有简单的安装教程但是对于需要管理并实际使用的还差点说明一minio可执行二进制文件cd/usr/local/binwgethttps://dl.minio.org.cn/server/minio/release/linux-amd64/miniochmodx minio二mccd/usr/local/binwgethttps://dl.min.io/client/mc/release/linux-amd64/mcchmodxmc二、部署、管理这里的部署是在Linux下的不是在docker或者k8s1.创建保存的目录比如保存在/var/miniomkdir/var/miniochmod755-R/var/minio2.启动命令以下命令是测试开启我这里不用默认的90009001端口因为很多情况这个端口会被占用。我是用19001作为webui端口19000作为api端口MINIO_ROOT_USERminioadmin MINIO_ROOT_PASSWORDminioadmin ./minio server /var/minio --console-address :19001 --address :19000默认账号密码账号为minioadmin密码为minioadmin通过上面的参数可以修改3.systemctl管理脚本vi/usr/lib/systemd/system/minio.service[Unit] Descriptionminio Afternetwork.target [Service] Typesimple Grouproot Userroot EnvironmentMINIO_ROOT_USERminioadmin EnvironmentMINIO_ROOT_PASSWORDminioadmin EnvironmentMINIO_VOLUMES/var/minio EnvironmentMINIO_OPTS--console-address :19001 --address :19000 ExecStart/usr/local/bin/minio server $MINIO_VOLUMES $MINIO_OPTS PrivateTmptrue Restartalways RestartSec10 [Install] WantedBymulti-user.target测试启动systemctl start miniosystemctl status minio显示正常后开机启动systemctlenableminio再次使用status这里会显示默认的账号密码systemctl status minio4.用浏览器打开webuiip19001默认账号密码是minioadmin输入后就可以进入管理了三、主从假设有1主1从两个minio都已经完成了配置minio server主服务器 地址10.0.0.3 服务地址http://10.0.0.3:19000/minio 账号minioadmin 密码minioadmin从服务器 地址10.0.0.2 服务地址http://10.0.0.2:19000/minio 账号minioadmin 密码minioadmin一从服务器slave安装MinIO Client和主服务器的安装方法一致翻到最上面三主服务器配置1.桶开启版本控制在服务器中的控制台点击具体桶 → “设置” → 开启 版本控制2.添加远程目标# 添加本地 aliasmcaliassetmain http://10.0.0.3:19000 minioadmin minioadmin# 添加从站 aliasmcaliassetreplica http://10.0.0.2:19000 minioadmin minioadmin3.验证连接只要有内容显示即可mcadmin info mainmcadmin info replica4.创建站点复制配置mcadmin replicateaddmain replica5.验证复制状态# 查看复制状态mcadmin replicate info main# 查看复制统计mcadmin replicate status main6.手动同步现有的数据比如将abc、def两个桶进行手动同步mcmirror main/abc replica/abcmcmirror main/def replica/defminio的主从非常友好如果主或者从服务器掉线只需要重新连上就可以自动恢复四、操作和程序调用由于minio是兼容aws s3对象存储的所以如果没有官方sdk包的也可以试一试aws的sdk比如minio没有php的sdk但是因为兼容aws的标准而aws有php的sdk所以可以直接用五、卸载minio鉴于minio不再开源,建议替换为别的1.关闭程序并取消开机启动systemctl stop miniosystemctl disable minio2.删除保存的文件或者先备份到别的地方rm-r/var/minio3.删除程序rm/usr/local/bin/minio六、通过mc配置桶比如我的桶名称为abcd一静态文件配置1.配置mc客户端mcaliassetlocalhttp://localhost:19000 minioadmin minioadmin2.设置桶为公共访问用于静态文件xxxx替换为桶名称mcanonymoussetdownload local/xxxx3.设置特定目录的公共访问比如mcanonymoussetdownload local/xxxx/public/*4.增加nginx配置location /static/ { proxy_pass http://localhost:19000/abcd/; proxy_set_header Host $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; # 缓存设置 expires 30d; add_header Cache-Control public, immutable; }二删除桶1.配置链接mcaliassetmyminio http://127.0.0.1:19000 minioadmin minioadmin2.列出所有桶mclsmyminio3.删除空桶-需要为空桶将xxxx替换为需要删除的桶mcrb myminio/xxxx4.强制删除桶及其内部所有对象将xxxx替换为需要删除的桶mcrb--forcemyminio/xxxx–force 会自动删除桶中的所有对象及版本然后再删除桶。