Springboot怎么集成minio实现文件存储
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"Springboot怎么集成minio实现文件存储",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Springboot怎么集成minio实
千家信息网最后更新 2026年11月03日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安全错误
数据库的锁怎样保障安全
广州大一互联网络科技有限公司
互联网科技公司的优势
互联网科技保险
合肥互联网科技公司
互联网科技作文
紫鲸互联网科技
奇士达互联网科技
融势互联网科技
深圳艾佳互联网科技
互联网科技公司名称
阿里巴巴算科技企业还是互联网
互联网企业和科技型企业
互联网5g黑科技有哪些
深圳育鹏互联网科技有限公司招聘
乌苏新华互联网科技做什么的
互联网相关科技技术
江苏互联网科技小贷
扫呗互联网科技有限公司
全球科技与互联网公司市值变化
科技发展第三阶段互联网时代
A股互联网金融科技公司
互联网核心科技是什么
广州互联网络科技有限公司
济南和联互联网科技有限公司
互联网科技公司需要的职位
互联网之后的科技是什么
荆州市昕露互联网络科技有限公司
广西互联网科技孵化中心
万物互联网智能科技
马化腾互联网科技教学