news 2026/3/10 19:24:43

springboot整合最新版minio和minio的安装(完整教程,新人必看)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
springboot整合最新版minio和minio的安装(完整教程,新人必看)

概述:这种东西,多写点,方便以后自己使用

目录

第一步:docker安装配置minio

第一步:拉取镜像

第二步:创建用于存储MinIO数据的卷

如果是最新版minio直接就使用最后的那个命令创建容器

第三步:运行MinIO Docker容器

注意

所以:真正的代码如下

第五步:访问minioWeb

第六步:登录

注意:倘若使用低版本去调用高版本的minio,可能还是要设置MINIO_ACCESS_KEY和MINIO_SECRET_KEY的

创建一个buckets

第二步:springboot整合minio

第三步:编写前端进行测试


第一步:docker安装配置minio

第一步:拉取镜像

docker pull minio/minio

第二步:创建用于存储MinIO数据的卷

MinIO需要一个用于持久化存储的卷。创建一个目录,并使用docker volume create命令创建一个Docker卷:

mkdir ~/minio-storage # 在用户主目录下创建一个用于存储的目录 docker volume create minio-data # 创建一个名为minio-data的Docker卷

如果是最新版minio直接就使用最后的那个命令创建容器

下面是老版的操作

第三步:运行MinIO Docker容器

docker run -p 9000:9000 --name minio -e "MINIO_ACCESS_KEY=your-access-key" -e "MINIO_SECRET_KEY=your-secret-key" -v minio-data:/data minio/minio server /data

替换your-access-keyyour-secret-key为您选择的自定义访问密钥和秘密密钥。

注意: Access key length should be at least 3, and secret key length at least 8 characters

就是your-access-key必须大于3,your-secret-key必须大于8

比如说,我要自定义 your-access-key为123456 和 your-secret-key为123456789

docker run -p 9000:9000 --name minio -e "MINIO_ACCESS_KEY=123456" -e "MINIO_SECRET_KEY=123456789" -v minio-data:/data minio/minio server /data

这样是可以运行的,但MINIO_ACCESS_KEY和MINIO_SECRET_KEY已经被弃用,建议使用MINIO_ROOT_USER和MINIO_ROOT_PASSWORD。同时,控制台端点正在监听一个动态端口(40753),建议使用–console-address ":PORT"来选择一个静态端口。

注意

新版mino是这样的。

API: http://172.17.0.3:9000 http://127.0.0.1:9000 api是9000端口 Console: http://172.17.0.3:40753 http://127.0.0.1:40753 console是40753端口 Documentation: https://docs.min.io

所以:真正的代码如下

比如说,我要自定义 MINIO_ROOT_USER为root 和 MINIO_ROOT_PASSWORD为123456789

docker run -p 9000:9000 -p 40753:40753 --name minio ? -e "MINIO_ROOT_USER=root" ? -e "MINIO_ROOT_PASSWORD=123456789" ? -v minio-data:/data ? minio/minio server /data --console-address ":40753"

第五步:访问minioWeb

通过浏览器访问http://localhost:40753

可以看到非常的帅气

第六步:登录

输入之前设置好的 root 和 123456789

这里就成功的部署完毕了。

注意:倘若使用低版本去调用高版本的minio,可能还是要设置MINIO_ACCESS_KEY和MINIO_SECRET_KEY的

完美命令如下:

这里为了方便,我设置一样的,都是root和123456789MINIO_ACCESS_KEY是root,MINIO_SECRET_KEY也是123456789

docker run -p 9000:9000 -p 40753:40753 --name minio -e "MINIO_ROOT_USER=root" -e "MINIO_ROOT_PASSWORD=123456789" -e "MINIO_ACCESS_KEY=root" -e "MINIO_SECRET_KEY=123456789" -v minio-data:/data minio/minio server /data --console-address ":40753"

创建一个buckets

比如说这里我就创建了一个叫user01的bucket

第二步:springboot整合minio

首先,在pom.xml文件中添加MinIO的依赖:

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

application.properties文件中配置MinIO的相关参数:

minio.endpoint=http://localhost:9000 minio.access-key=YOUR_ACCESS_KEY minio.secret-key=YOUR_SECRET_KEY minio.bucket-name=your-bucket-name

由于我上面创建minio的时候已经设置好了,bucket-name=user01

server.port=8080 minio.endpoint=http://localhost:9000 minio.access-key=root minio.secret-key=123456789 minio.bucket-name=user01

创建一个MinioConfig类,用于加载MinIO的配置信息:

package org.cyl.spaceutils.config; import io.minio.MinioClient; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MinioConfig { @Value("${minio.endpoint}") private String minioEndpoint; @Value("${minio.access-key}") private String minioAccessKey; @Value("${minio.secret-key}") private String minioSecretKey; @Bean public MinioClient minioClient() { return MinioClient.builder() .endpoint(minioEndpoint) .credentials(minioAccessKey, minioSecretKey) .build(); } }

在编写一个controller类即可

package org.cyl.spaceutils.controller; import io.minio.MinioClient; import io.minio.errors.MinioException; import io.minio.PutObjectArgs; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.io.InputStream; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; @SpringBootApplication @RestController public class MinioDemoController { @Autowired private MinioClient minioClient; @Value("${minio.bucket-name}") private String bucketName; @PostMapping("/upload") public String uploadFile(@RequestParam("file") MultipartFile file) { try { InputStream inputStream = file.getInputStream(); minioClient.putObject( PutObjectArgs.builder() .bucket(bucketName) .object(file.getOriginalFilename()) .stream(inputStream, inputStream.available(), -1) .contentType(file.getContentType()) .build() ); return "File uploaded successfully!"; } catch (MinioException | IOException | NoSuchAlgorithmException | InvalidKeyException e) { e.printStackTrace(); return "Error uploading file to MinIO: " + e.getMessage(); } } }

现在,你可以运行这个Spring Boot应用,并通过/upload接口上传文件到MinIO。

修改一下tomcat上传文件的大小配置

# 设置单个文件大小 spring.servlet.multipart.max-file-size= 50MB # 设置单次请求文件的总大小 spring.servlet.multipart.max-request-size= 50MB

第三步:编写前端进行测试

前端代码

<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>文件上传</title> </head> <body> <h1>文件上传</h1> <form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="file" required> <button type="submit">上传</button> </form> </body> </html>

上传成功,查看minio控制页面

上传成功。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/9 11:37:58

PDF-Extract-Kit部署案例:企业文档管理系统集成

PDF-Extract-Kit部署案例&#xff1a;企业文档管理系统集成 1. 引言 在现代企业信息化建设中&#xff0c;非结构化数据的处理已成为数字化转型的关键环节。PDF作为最常用的文档格式之一&#xff0c;在合同、报告、技术手册等场景中广泛存在。然而&#xff0c;传统方式对PDF内…

作者头像 李华
网站建设 2026/3/4 13:17:52

DLSS Swapper完全指南:解锁游戏画质与性能的终极解决方案

DLSS Swapper完全指南&#xff1a;解锁游戏画质与性能的终极解决方案 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 想要在游戏中获得最佳画质表现&#xff0c;同时享受流畅的游戏体验吗&#xff1f;DLSS Swapper正是…

作者头像 李华
网站建设 2026/3/4 2:54:48

League Akari终极指南:免费智能助手快速提升LOL操作效率

League Akari终极指南&#xff1a;免费智能助手快速提升LOL操作效率 【免费下载链接】LeagueAkari ✨兴趣使然的&#xff0c;功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari 还在为…

作者头像 李华
网站建设 2026/3/8 17:01:57

打造极致透明任务栏:TranslucentTB全方位使用手册

打造极致透明任务栏&#xff1a;TranslucentTB全方位使用手册 【免费下载链接】TranslucentTB 项目地址: https://gitcode.com/gh_mirrors/tra/TranslucentTB 想要为Windows桌面注入全新视觉活力吗&#xff1f;TranslucentTB这款轻量级美化工具能够让你的任务栏瞬间变身…

作者头像 李华
网站建设 2026/3/4 10:19:44

5分钟上手:LeagueAkari游戏助手的10个必学神技

5分钟上手&#xff1a;LeagueAkari游戏助手的10个必学神技 【免费下载链接】LeagueAkari ✨兴趣使然的&#xff0c;功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari 还在为繁琐的游戏…

作者头像 李华