以下是基于最新公开资料整理的 MinIO 使用教程涵盖安装、配置、基本操作及 Spring Boot 集成适用于开发与生产环境。一、MinIO 简介MinIO 是一个高性能、兼容 Amazon S3 协议的对象存储系统适用于存储图片、视频、日志等非结构化数据。其核心特点包括轻量级单二进制文件无外部依赖高可用支持纠删码Erasure Code和分布式集群跨平台支持 Linux、Windows、macOS 及 DockerS3 兼容可直接使用 AWS SDK 或工具如mc操作官网MinIO 官网GitHubMinIO GitHub二、单机部署推荐用于开发/测试1. Docker 部署最简方式拉取最新镜像dockerpull minio/minio 创建数据目录持久化存储mkdir-p/data/minio 启动容器API 端口9000控制台端口9001dockerrun-d\-p9000:9000\-p9001:9001\--nameminio\-v/data/minio:/data\-eMINIO_ROOT_USERminioadmin\-eMINIO_ROOT_PASSWORDminioadmin\minio/minio server /data --console-address:9001⚠️ 注意从 2026 年起MinIO 要求 控制台端口与 API 端口不同否则会报错 。2. 二进制部署Linux/macOS下载并安装wgethttps://dl.min.io/server/minio/release/linux-amd64/minio-O/usr/local/bin/miniochmodx /usr/local/bin/minio 创建数据目录mkdir-p/data/minio 设置环境变量exportMINIO_ROOT_USERminioadminexportMINIO_ROOT_PASSWORDminioadmin 启动服务 minio server /data/minio --console-address:90013. Windows 部署下载minio.exe和mc.exeMinIO Windows 下载创建目录如D:\minio\data以管理员身份打开 CMD执行cd D:\minio setx MINIO_ROOT_USER admin setx MINIO_ROOT_PASSWORD password123 minio.exe server D:\minio\data --console-address 127.0.0.1:9001 --address 127.0.0.1:9000❌ 不要双击minio.exe运行必须通过命令行启动 。三、访问控制台启动成功后浏览器访问http://你的IP:9001默认账号密码为minioadmin可自定义。四、基本操作使用 mc 客户端mc是 MinIO 提供的命令行工具功能类似aws s3。安装 mcLinux/macOSwgethttps://dl.min.io/client/mc/release/linux-amd64/mc-O/usr/local/bin/mcchmodx /usr/local/bin/mc Windows(PowerShell)Invoke-WebRequest-Urihttps://dl.min.io/client/mc/release/windows-amd64/mc.exe-OutFileC:\mc.exe配置别名并操作配置 MinIO 服务连接使用 API 端口9000mcaliassetmyminio http://localhost:9000 minioadmin minioadmin--apiS3v4 创建存储桶Bucketmcmb myminio/my-bucket 上传文件mccpmyfile.txt myminio/my-bucket/ 设置桶为公共读mcpolicysetpublic myminio/my-bucket 查看文件列表mclsmyminio/my-bucket 注意设置策略必须使用 API 端口9000而非控制台端口9001 。五、Spring Boot 集成Java 开发1. 添加依赖pom.xmldependencygroupIdio.minio/groupIdartifactIdminio/artifactIdversion8.5.7/version!-- 推荐使用最新稳定版 --/dependency2. 配置文件application.ymlminio:endpoint:http://localhost:9000access-key:minioadminsecret-key:minioadminbucket-name:my-bucket3. 配置类 工具类示例ComponentSlf4jpublicclassMinioUtil{Value(${minio.endpoint})privateStringendpoint;Value(${minio.access-key})privateStringaccessKey;Value(${minio.secret-key})privateStringsecretKey;Value(${minio.bucket-name})privateStringbucketName;privateMinioClientminioClient;PostConstructpublicvoidinit(){try{minioClientMinioClient.builder().endpoint(endpoint).credentials(accessKey,secretKey).build();if(!minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build())){minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());log.info(创建桶: {},bucketName);}}catch(Exceptione){log.error(MinIO 初始化失败,e);thrownewRuntimeException(MinIO 初始化异常);}}publicStringuploadFile(MultipartFilefile,Stringdir)throwsException{Stringsuffixfile.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(.));StringfileNameUUID.randomUUID()suffix;StringobjectNamedirfileName;minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(objectName).stream(file.getInputStream(),file.getSize(),-1).contentType(file.getContentType()).build());return/bucketName/objectName;}}完整示例项目可参考MinIO Spring Boot 整合教程六、常见问题排查控制台打不开检查是否启用了防火墙或端口是否被占用 。无法设置桶策略使用了控制台端口9001而非 API 端口9000。Docker 启动失败确保挂载目录存在且权限正确 。Windows 双击无反应MinIO 必须通过命令行启动不可双击运行 。如需进一步了解分布式部署、HTTPS 配置或 Prometheus 监控可参考MinIO 官方文档。