千家信息网

SpringBoot怎么整合Minio文件存储

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇"SpringBoot怎么整合Minio文件存储"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一
千家信息网最后更新 2026年11月04日SpringBoot怎么整合Minio文件存储

这篇"SpringBoot怎么整合Minio文件存储"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"SpringBoot怎么整合Minio文件存储"文章吧。

背景

公司的开发框架集成了附件本地存储,阿里云,华为云等,现项目有要求附件存储与应用部署环境不能是同一台服务器,也不能使用云存储,经过技术选型后决定框架整合minio,将minio部署在另一台服务器开通外网端口即可解决问题

Minio安装部署

下载minio安装部署包,创建对应配置文件,这里提供一个整合后的压缩包

下载地址:http://xiazai.jb51.net/202204/yuanma/minio_jb51.rar

创建minioData文件夹作为文件存储路径,解压安装包根据放置路径修改对应配置文件文件

minio-service.xml和run.bat

  minio  MinIO Service  MinIO is a High Performance Object Storage  D:\minio\logs      10240    8    D:\minio\run.bat
set MINIO_ACCESS_KEY=adminset MINIO_SECRET_KEY=abcd@1234minio.exe server -address :9999 D:\minioData

解压部署包后cmd进入对应解压路径,输入命令minio.exe server D:\minioData 初始化后关闭cmd命令

使用服务安装工具安装服务,选择minio-service.exe

windows服务安装工具下载地址:http://xiazai.jb51.net/202204/yuanma/windowsfuwu_jb51.rar

启动服务后访问 http://127.0.0.1:9999/

用户名:admin 密码:abcd@1234 (端口及账户密码都是在run.bat文件中配置的)

进入系统创建bucket用于存储文件(类似于阿里云)

配置pom文件--h3>

              io.minio            minio            7.1.0        

配置yml文件

这里分别配置上传/下载地址是正式项目可能配置外网端口后,服务器中不能访问对应的外网端口,上传走内网,下载走外网

#minio配置  # 上传地址  minio_uploadurl: http://192.168.1.42:9999/  # 下载地址  minio_downloadurl: http://192.168.1.42:9999/  # 账户  minio_accesskey: admin  # 密码  minio_secrectkey: abcd@1234  # 存储文件夹  minio_bucknetname: xxx

Minio工具类

初始化client

public MinioClient InitMinio() {        MinioClient minioClient = MinioClient.builder().        endpoint(frameConfig.getMinio_uploadurl()).                          credentials(frameConfig.getMinio_accesskey(),frameConfig.getMinio_secrectkey()).build();        try{            boolean isExist = minioClient.bucketExists(frameConfig.getMinio_bucknetname());            if (!isExist) {                minioClient.makeBucket(frameConfig.getMinio_bucknetname());            }        }catch (Exception e){            e.printStackTrace();        }        return minioClient;    }

上传文件

getkey方法只是指定对应的自定义存储路径

指定content-type是为了浏览器能打开附件时,图片和pdf等文件能够在线浏览

不指定默认都是stream,打开文件统一为下载

 public boolean uploadMinioFile(InputStream stream, AttachmentDO attachmentDO,String contentType){        boolean result = true;        try{            MinioClient minioClient = InitMinio();            String bucketName =frameConfig.getMinio_bucknetname();            PutObjectOptions option = new PutObjectOptions(stream.available(), -1);            option.setContentType(contentType);            minioClient.putObject(bucketName,getKey(attachmentDO),stream,option);        }catch (Exception e){            logger.error("Minio上传文件失败:" + e.getMessage());            result = false;        }        return result;    }

下载文件

需要注意的是,生成的文件下载地址是和MinioClient中指定的服务器地址绑定的,使用nginx代理后是无效的

 public  String readMinioCommonFile(AttachmentDO attachmentDO){        String fileurl = "";        try{            MinioClient minioClient = InitMinio();            String bucketName =frameConfig.getMinio_bucknetname();            return minioClient.presignedGetObject(bucketName, getKey(attachmentDO));        }catch (Exception e){            logger.error("Minio读取文件失败:" + e.getMessage());        }        return fileurl;    }

删除文件

 public  boolean deleteMinioFile(AttachmentDO attachmentDO){        boolean result = true;        try{            MinioClient minioClient = InitMinio();            String bucketName =frameConfig.getMinio_bucknetname();            minioClient.removeObject(bucketName,getKey(attachmentDO));        }catch (Exception e){            logger.error("Minio删除文件失败:" + e.getMessage());            result = false;        }        return result;    }

以上就是关于"SpringBoot怎么整合Minio文件存储"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

文件 存储 服务 配置 地址 整合 内容 服务器 端口 路径 密码 工具 附件 命令 文件夹 文章 框架 知识 篇文章 账户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网金融公司科技 致骋互联网科技 奇酷互联网络科技 长亮科技互联网金融 互联网科技股有哪些 中国互联网金融科技基金 中盈科技互联网信息有限公司 欧洲十大科技互联网公司 互联网和黑科技的看法 互联网与医疗科技 中国互联网十大科技股排名 中国科技创新与世界互联网大会 互联网企业科技类企业如何做账 城市宝互联网科技有限公司 广州有谷有贝互联网科技有限公司 信承诺互联网科技有限公司 云鲸互联网络科技有限公司 互联网金融运营模式中的金融科技 盐城市攀科互联网科技有限公司 互联网的黑科技实验室 咖啡 互联网科技名片 米客互联网科技 湖南洣水互联网科技有限公司扣款 赶超互联网科技 微信多开 佛山市翊博互联网络科技有限公司 银行科技岗属于互联网吗 杭州披云加互联网科技有限公司 新氧科技和美国互联网有关系吗 互联网高科技绘画
0