用大白话讲:MinIO 就是一款轻量、好用的「私有对象存储服务器」,你可以把它理解成自己搭的私人阿里云 OSS / 百度网盘(企业版)

MinIO对象存储 Kubernetes — MinIO中文文档 | MinIO Kubernetes中文文档

1. 先搞懂:对象存储是啥?

普通硬盘 / 文件夹:按文件、目录存东西。对象存储:把图片、视频、日志、安装包、附件这类文件,统一当成一个个「对象」存,天生适合存海量小文件、大文件,访问、扩容都很方便。

平时你用的:阿里云 OSS、腾讯云 COS、七牛云,全是云厂商的对象存储

2. MinIO 到底能干啥?

一句话:不用买云服务,自己在服务器 / 电脑上,搭一套专属文件存储服务

  • 自己部署,数据存在自己的硬盘里,隐私、安全、成本全自己掌控
  • 支持网页端上传 / 下载、程序代码调用(接口)
  • 存图片、短视频、APP 附件、系统日志、备份文件、静态资源都合适

MinIO = 免费、自建、高性能的私有云存储,专门用来大批量存各种文件。

3、安装部署

当前演示环境为Lunxi CentOS 7版本

一、安装包下载(国内加速源)
wget http://dl.minio.org.cn/server/minio/release/linux-amd64/minio
二、RPM 包(适合 yum 管理)下载
wget https://dl.min.io/server/minio/release/linux-amd64/minio-release-centos7.x86_64.rpm

安装:

yum install -y minio-release-centos7.x86_64.rpm
三、下载后操作

赋权 + 移到系统 PATH:

chmod +x minio
mv minio /usr/local/bin/

验证版本:

minio --version

四、创建数据目录

mkdir -p /data/minio
五、临时启动测试
# 自定义账号密码,自行修改
MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=Minio@2026 minio server /data/minio --console-address ":9001"
  • 访问控制台:http://你的服务器IP:9001
  • API 访问地址:http://你的服务器IP:9000
  • 登录账号密码就是上面设置的 minioadmin / Minio@2026测试正常后按 Ctrl + C 停止临时进程。
六、防火墙放行端口
# 永久放行 9000、9001
firewall-cmd --permanent --add-port=9000/tcp
firewall-cmd --permanent --add-port=9001/tcp

# 重载生效
firewall-cmd --reload

# 查看端口是否放行
firewall-cmd --list-ports
七、后台运行 + 开机自启
vi /etc/systemd/system/minio.service

填入内容:

[Unit]
Description=MinIO Object Storage
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target

[Service]
Type=notify
# 这里改成你自己的账号密码
Environment="MINIO_ROOT_USER=minioadmin"
Environment="MINIO_ROOT_PASSWORD=Minio@2026"
ExecStart=/usr/local/bin/minio server /data/minio --console-address ":9001"
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

ESC,输入 :wq 保存退出。

八、加载服务、启动、设置开机自启
# 重新加载系统服务
systemctl daemon-reload

# 启动 MinIO
systemctl start minio

# 设置开机自启
systemctl enable minio

# 查看运行状态(显示 active (running) 就是正常)
systemctl status minio
九、常用管理命令
# 停止服务
systemctl stop minio

# 重启服务
systemctl restart minio

# 关闭开机自启
systemctl disable minio
十、浏览器访问 http://服务器IP:9001,输入账号密码登录
  • 创建桶 (Bucket)
    • 点击左侧 BucketsCreate Bucket
    • 输入桶名(比如 uploadavatar,纯英文 / 数字,不要中文空格)
  • 文件操作
    • 进入对应桶,可拖拽文件上传、新建文件夹、下载、删除文件

4、API调用

Java 上传示例(Maven 项目

1. 依赖(pom.xml)

<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>8.5.9</version>
</dependency>

2. 代码示例

import io.minio.MinioClient;
import io.minio.PutObjectArgs;

public class MinioUpload {
    public static void main(String[] args) {
        MinioClient minioClient = MinioClient.builder()
                .endpoint("http://192.168.100.12:9000")
                .credentials("minioadmin", "Minio@2026")
                .build();

        try {
            minioClient.putObject(
                PutObjectArgs.builder()
                        .bucket("my-bucket")
                        .object("upload/2026/test.jpg")
                        .stream(
                            new FileInputStream("/root/test.jpg"),
                            new File("/root/test.jpg").length(),
                            -1
                        )
                        .build()
            );
            System.out.println("文件上传成功");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

中文文档地址:MinIO对象存储 Kubernetes — MinIO中文文档 | MinIO Kubernetes中文文档

SDK 教程、API 参考

!!!每个 SDK 文档里都有完整的上传、下载、删除、生成签名 URL的示例代码

中文 SDK 列表:MinIO对象存储 Kubernetes — MinIO中文文档 | MinIO Kubernetes中文文档

!!!如果你想直接用 HTTP 请求调用 API(不用 SDK),可以看 S3 兼容文档:
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐