[开源]一个 MinIO 的二次封装与增强工具,简化开发只增强、不侵入
![[开源]一个 MinIO 的二次封装与增强工具,简化开发只增强、不侵入](https://yy123.ink/api/img/1782597066783-91ig35.jpg)
一、开源项目简介
MinIO Plus
我们的愿景是成为 MinIO 最好的搭档
MinIO-Plus 是一个 MinIO 的二次封装与增强工具,在 MinIO 的基础上只做增强,不侵入 MinIO 代码,只为简化开发、提高效率而生。成为 MinIO 在项目中落地的润滑剂。
我们的开源原则 我们承诺此项目使用 Apache License 2.0 开源许可证永不变更。我们承诺此项目使用永久免费可商用,杜绝文档收费、升级收费、功能收费等情况。我们承诺此项目绝不竞价排名,杜绝刷 star 数据、刷 fork 数据,保证项目纯洁。
二、开源协议
使用Apache-2.0开源协议
三、界面展示


四、功能概述
MinIO-Plus 是一个 MinIO 的二次封装与增强工具,在 MinIO 的基础上只做增强,不侵入 MinIO 代码,只为简化开发、提高效率而生。成为 MinIO 在项目中落地的润滑剂。
特性 | Feature
-
无侵入 :只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。
-
文件秒传 :对每个上传的文件进行哈希摘要识别,用户上传同一个文件时,没有文件实际传输过程,做到秒传。
-
并发上传 :将文件切分为小块。同时并发上传多个小块,最大限度地利用带宽,加快上传速度。
-
断点续传 :在传输过程中遇到问题导致传输失败,只需重新传输未完成的小块,而不需要重新开始整个传输任务。
-
缩略图生成 :识别文件类型,在图片上传时自动生成缩略图,缩略图大小可配置。
-
自动桶策略 :按照文档、压缩包、音频、视频、图片等类型自动建桶,按照/年/月划分路径,避免受到操作系统文件目录体系影响导致性能下降。
-
访问权限控制 :可支持基于用户、组的文件权限控制,保证重要文件的安全性。
-
访问链接时效 :基于 MinIO 的临时链接创建策略,提供具备有效期并预签名的上传与下载地址。
-
前端直连 :前端直连 MinIO ,项目工程不做文件流的搬运,在支持以上特性的情况下提供 MinIO 原生性能。
-
极佳的兼容性 :JDK 从 1.8 至 17+,并同时支持 SpringBoot2 和 SpringBoot3。
五、技术选型
代码结构
项目定位为一个MinIO的Java语言SDK,非独立部署服务,并支持spring-boot自动装配。用户自行实现数据存储部分,项目仅提供MySQL默认实现。
模块划分

-
minio-plus-api:MinIO Plus 对外提供的能力接口定义,可以理解为 Service 层接口定义
-
minio-plus-core:核心业务逻辑包,可以理解为 minio-plus-api 包的接口实现
-
minio-plus-extension:扩展包,该包封装了Controller相关接口,可以理解为 minio-plus-api 包的接口的 Controller 层封装,帮助项目使用时开箱即用
-
minio-plus-common:工具类、配置类包
-
minio-s3-apiminio-s3-api-definition:MinIO Plus 使用的S3规范接口定义minio-s3-api-official:原生SDK实现minio-s3-api-custom:自主实现
-
minio-plus-spring-boot-starterminio-plus-all-spring-boot-starter:包含core、extension、common、apiminio-plus-core-spring-boot-starter:包含core、common、api
-
minio-plus-applicationminio-plus-application-official:使用原生MinIO SDK与元数据使用MySQL数据库的示例工程minio-plus-application-custom:使用自主实现S3规范与数据使用MySQL数据库的示例工程
来源:MinIO Plus 官方文档