Springboot怎么集成minio实现文件存储
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,本篇内容主要讲解"Springboot怎么集成minio实现文件存储",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Springboot怎么集成minio实
千家信息网最后更新 2025年11月10日Springboot怎么集成minio实现文件存储
本篇内容主要讲解"Springboot怎么集成minio实现文件存储",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Springboot怎么集成minio实现文件存储"吧!
MinIO 是一款基于Go语言的高性能对象存储服务,它采用了Apache License v2.0开源协议,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。
1. 安装部署
1.1 Linux 简单部署
wget https://dl.min.io/server/minio/release/linux-amd64/miniochmod +x minio MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=123456 ##启动并指定端口./minio server /mnt/data --console-address ":9001"## 或者后台启动nohup ./minio server /mnt/data > /opt/minio/minio.log 2>&1

然后访问对应地址即可:云服务器的话记得去安全组打开对应端口,账号密码如图所示:
1.2 Docker 部署
#下载MinIO的Docker镜像 docker pull minio/minio #--console-address指定MinIO Console的运行端口 (否则会随机端口运行) 暴露端口9001或者9000 docker run -p 9090:9000 -p 9001:9001 --name minio \ -v /mydata/minio/data:/data \ -e MINIO_ROOT_USER=minioadmin \ -e MINIO_ROOT_PASSWORD=minioadmin \ -d minio/minio server /data --console-address ":9001"
2. Spring boot 整合
添加相关依赖
io.minio minio 8.0.3
添加相关配置信息
默认安装不指定Access key 和Secret key 的话都是minioadmin, Endpoint则为服务器API地址.
spring: # 配置文件上传大小限制 servlet: multipart: max-file-size: 100MB max-request-size: 100MB# minio 参数配置minio: endpoint: http://127.0.01:9000 accessKey: minioadmin secretKey: minioadmin
注入客户端
将客户端注入Spring容器中,使用的时候直接获取即可。
@Configurationpublic class MinIoConfig { @Value("${minio.endpoint}") private String endpoint; @Value("${minio.accessKey}") private String accessKey; @Value("${minio.secretKey}") private String secretKey; /** * 注入minio 客户端 * * @return */ @Bean public MinioClient minioClient() { return MinioClient.builder() .endpoint(endpoint) .credentials(accessKey, secretKey) .build(); }}编写相关业务代码
编写相关业务代码,上传图片后将相关的路径回传。
/** * 文件上传 (自定义文件名称) */public MinIoUploadVo upload(String strDir, MultipartFile multipartFile) throws Exception { // bucket 不存在,创建 if (!this.bucketExists(strDir)) { this.makeBucket(strDir); } InputStream inputStream = multipartFile.getInputStream(); // 创建一个 headers Map headers = new HashMap<>(); // 添加请求头 文件的ContentType 动态配置 multipartFile.getContentType() headers.put("Content-Type", "application/octet-stream"); String fileName = multipartFile.getOriginalFilename(); String minFileName = minFileName(fileName); instance.putObject( PutObjectArgs.builder().bucket(strDir).object(minFileName).stream( inputStream, inputStream.available(), -1) // PutObjectOptions,上传配置(文件大小,内存中文件分片大小) .headers(headers) .build()); String url = endpoint.concat("/").concat(strDir).concat("/").concat(minFileName); // 返回生成文件名、访问路径 return new MinIoUploadVo(strDir, fileName, minFileName, url);} 上传文件接口
@RequestMapping(value = "/upload", method = RequestMethod.POST)public R upload(MultipartFile file, HttpServletRequest request) throws IOException { String strDir = request.getParameter("bucketName") == null ? "car" : request.getParameter("bucketName"); try { MinIoUploadVo uploadVo = minioService.upload(strDir, file); return R.ok().message("文件上传成功").data(uploadVo); } catch (Exception e) { log.error("上传文件失败,msg={}", e.getMessage()); e.printStackTrace(); return R.error(); }}测试相关接口

如果不能访问该地址 ,记得去开启相关权限。
3. 问题记录
S3 API Request made to Console port. S3 Requests should be sent to API port.
原因是配置文件里面用了Console 控制台的端口,应该使用API端口:
到此,相信大家对"Springboot怎么集成minio实现文件存储"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
文件
端口
配置
存储
大小
客户
客户端
服务
业务
代码
内容
图片
地址
容器
接口
数据
服务器
路径
镜像
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器网站安装调试
数据库root用户密码是多少
网络安全的比赛有哪些
想学游戏软件开发
rfid怎么连接到数据库
支持cypher语句的图数据库
广西数据库安全箱销售
网络安全大3
text自动写入数据库
数据库dbs的缩写
淄博软件开发推荐
黑马pg数据库
数据库附加报5120
数据库怎么转换行列
重庆软件开发培训价格
鄞州安卓软件开发管理
敏捷软件开发java版
去派出所学习网络安全
数据库混合模式怎么设置
赞比亚网络安全法案
vb中数据库在哪建
北方民族大学论文数据库
数据库日期
企业云端服务器怎么选择
数据库扩张性
网络安全小品小学生剧本
16级网络安全技术试卷
防范网络安全诈骗做法
攀枝花互联网科技
初中生网络安全作业