永久免费商用!一款开源的MinIO二次封装与增强工具,支持文件秒传、断点续传、缩略图生成等功能
个人网站:IT知识小屋 版权:本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦文章目录简介特性项目架构核心功能功能截图快速使用开源地址使用手册写在最后简介MinIO-Plus是一款开源免费的MinIO的二次封装与增强工具旨在对MinIO进行功能拓展解决对象存储在大文件分片上传、断点续传、缩略图生成、访问权限控制等场景的难题。MinIO-Plus在MinIO的基础上只做增强不侵入MinIO代码只提供更简单的使用方式。特性无侵入只做增强不做改变引入 minio-plus 不会对现有工程产生影响。文件秒传对每个上传的文件进行哈希摘要识别用户上传同一个文件时没有文件实际传输过程做到秒传。并发上传将文件切分为小块。同时并发上传多个小块最大限度地利用带宽加快上传速度。断点续传在传输过程中遇到问题导致传输失败只需重新传输未完成的小块而不需要重新开始整个传输任务。缩略图生成识别文件类型在图片上传时自动生成缩略图缩略图大小可配置。自动桶策略按照文档、压缩包、音频、视频、图片等类型自动建桶按照 /年/月 划分路径避免受到操作系统文件目录体系影响导致性能下降。访问权限控制可支持基于用户、组的文件权限控制保证重要文件的安全性。访问链接时效基于 MinIO 的临时链接创建策略提供具备有效期并预签名的上传与下载地址。客户端直连前端直连 MinIO 项目工程不做文件流的搬运在支持以上特性的情况下提供 MinIO 原生性能。极佳的兼容性JDK 从 1.8 至 17并同时支持 SpringBoot2 和 SpringBoot3。项目架构模块架构图minio-plus-parent ├── minio-plus-common # 公共模块 ├── minio-plus-api # API 接口定义 ├── minio-plus-core # 核心实现 ├── minio-plus-extension # 扩展功能 ├── minio-plus-s3-api # S3 API 适配 │ ├── s3-api-definition # S3 API 定义 │ └── s3-api-minio # MinIO S3 实现 └── minio-plus-spring-boot-starter # Spring Boot 集成 ├── minio-plus-core-springboot-starter # 核心功能 SpringBoot3 Starter ├── minio-plus-core-springboot2-starter # 核心功能 SpringBoot2 Starter ├── minio-plus-all-springboot-starter # 完整功能 SpringBoot3 Starter └── minio-plus-all-springboot2-starter # 完整功能 SpringBoot2 Starter依赖层次图┌───────────────────────────────────────────┐ │ Spring Boot Starters │ │ ┌─────────────────────────────────────┐ │ │ │ minio-plus-extension │ │ │ └─────────────────────────────────────┘ │ └───────────────────────────────────────────┘ │ ▼ ┌───────────────────────────────────────────┐ │ minio-plus-core │ └───────────────────────────────────────────┘ │ ▼ ┌───────────────────────────────────────────┐ │ ┌─────────────────┐ ┌──────────────────┐ │ │ │ minio-plus-api │ │ s3-api-definition│ │ │ └─────────────────┘ └──────────────────┘ │ └───────────────────────────────────────────┘ │ ▼ ┌───────────────────────────────────────────┐ │ minio-plus-common │ └───────────────────────────────────────────┘核心功能上传当用户重复上传相同的文件时每次都需要执行一次完整的文件上传操作这造成了文件上传过程的冗余即浪费了用户的时间和服务器的网络IO重复文件又占用了不必要的服务器磁盘空间。针对以上两个问题minio-plus支持文件秒传特性解决了传统文件上传中重复文件上传时的问题提高了文件传输的效率和用户体验同时减少了文件服务器的存储空间占用。实现文件秒传的技术问题主要涉及文件唯一标识的生成和文件重复性检测。文件唯一标识生成在浏览器端使用MD5哈希算法对待传输文件进行哈希值编码。编码结果为一字符串作为文件的唯一标识。文件重复性检测在服务器端根据接收到的文件唯一标识在数据库中进行搜索。如果在数据库中找到相同的文件唯一标识那么判断该文件存在且无需再进行文件传输。分片上传分片上传是一种将大文件划分为多个片段并发或按序上传的技术。它有以下几个好处提高传输速度当上传的文件比较大时将大文件进行分块同时并发上传多个小块而不是一整个大文件按顺序上传。这样可以最大限度地利用带宽从而加快上传速度。支持断点续传分块上传是断点续传技术的前置条件要想实现断点续传必须先支持分块。断点续传断点续传依赖于分片技术是提高可用性的重要手段优点如下节省时间、减少网络IO、减少磁盘IO在文件传输过程中遇到问题导致传输失败时只需重新传输未完成的分片而不需要重新开始整个传输任务。增加传输的可靠性可以避免由于网络波动或其他原因导致整个文件需要重新传输的情况。再也不怕意外断网。在大文件传输时尤其有用。随时暂停和恢复用户可以在传输过程中暂停传输或者中断传输断点续传可以方便地恢复传输任务。下载浏览器向服务端发起文件读取请求服务端会根据fileKey入参取得文件的元数据信息。获取文件元数据信息后根据元数据信息中的是否私有字段和所有者字段判断是否具备文件读取权限。当用户具备读取权限时服务端请求MinIO服务器获取经过预签名的文件访问地址返回给浏览器。当用户不具备读取权限时返回给浏览器无访问权限提示信息。浏览器拿到真实文件地址后读取文件并显示或下载。缩略图在用户第一次访问图片预览接口时自动生成缩略图压缩时比例按照图片原始比例不做变化使用相同的md5名称存入缩略图桶中。缩略图默认按照宽度300像素进行等比例压缩功能截图基础用法文件权限通过传递 authorization 和 isPrivate 控制文件上传、下载的权限。监听文件上传过程文件上传过程中通过回调函数可以监听文件上传过程。快速使用开发环境要求Java: JDK 8 或更高版本 Maven: 3.6.0 或更高版本 Git: 用于代码版本控制 操作系统: Windows、Linux 或 macOS构建项目1、下载项目源码获取方式在文后 2、解压 ZIP 文件 unzip minio-plus-v1.0.x.zip cd minio-plus-v1.0.x 3、或解压 TAR.GZ 文件 tar -xzf minio-plus-v1.0.x.tar.gz cd minio-plus-v1.0.x开源地址使用手册点击下方的【IT学习日记】回复【资源】领取如果这篇文章对您有帮助请一定帮我点个“关注”和“点赞”,这对我非常重要。我将会继续推荐更多优质项目和新闻。写在最后1000优质开源项目更新进度257/1000。如需更多类型优质项目推荐请在文章后留言。

相关新闻

TradingView MCP服务器:连接Claude Code实现金融数据自动化分析

TradingView MCP服务器:连接Claude Code实现金融数据自动化分析

这次我们来看一个专门为 TradingView 和 Claude Code 设计的 MCP 服务器项目。这个项目由 tradesdontlie 团队开发,核心功能是让 Claude Code 能够直接与 TradingView 进行深度集成,实现金融数据的自动化获取和技术指标分析。对于经常使用 TradingView 进…

2026/11/14 0:19:00 阅读更多 →
内容相关却不被AI引用?从RAG链路拆解可信度优化方案

内容相关却不被AI引用?从RAG链路拆解可信度优化方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/4 2:02:18 阅读更多 →
手把手教你学 Simulink—— 基于强化学习(DDPG)的 PMSM 无位置传感器控制仿真

手把手教你学 Simulink—— 基于强化学习(DDPG)的 PMSM 无位置传感器控制仿真

目录 手把手教你学 Simulink —— 基于强化学习(DDPG)的 PMSM 无位置传感器控制仿真(工程修正版落地版) 一、必须先修正:为什么 DDPG 不能"端到端出 θ̂" 1.1 三条路线对比(工程选型,修正前版) 1.2 修正理由(来自权威文献) 二、总体架构(Simulink)…

2026/11/12 8:24:48 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/13 22:08:41 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻