永久免费商用!一款开源的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。如需更多类型优质项目推荐请在文章后留言。

相关新闻

基于Matlab的车牌识别系统:从算法原理到GUI实现的毕业设计全攻略

基于Matlab的车牌识别系统:从算法原理到GUI实现的毕业设计全攻略

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

2026/9/3 7:09:14 阅读更多 →
TradingView MCP服务器:连接Claude Code实现金融数据自动化分析

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

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

2026/9/3 7:08:14 阅读更多 →
内容相关却不被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/9/3 7:08:14 阅读更多 →

最新新闻

电商销售数据分析与销量预测:Python+Django集成线性回归、随机森林与XGBoost

电商销售数据分析与销量预测:Python+Django集成线性回归、随机森林与XGBoost

在真实的电商业务里,销售数据通常不是只用来做一次月度报表,而是要持续回答三个问题:今天卖了多少、异常波动出在哪里、明天大约能卖多少。用 Python 做数据分析与机器学习、用 Django 做后端框架、把线性回归、随机森林和 XGBoost 同时接入同…

2026/9/4 9:07:25 阅读更多 →
vue-element-admin 完整实战指南:从环境搭建、多环境发布到权限架构与 Mock 机制的源码级解析

vue-element-admin 完整实战指南:从环境搭建、多环境发布到权限架构与 Mock 机制的源码级解析

vue-element-admin 完整实战指南:从环境搭建、多环境发布到权限架构与 Mock 机制的源码级解析 【免费下载链接】vue-element-admin :tada: A magical vue admin https://panjiachen.github.io/vue-element-admin 项目地址: https://gitcode.com/gh_mirrors/vu/vue…

2026/9/4 9:07:25 阅读更多 →
从AI用户到AI开发者:零基础四个月分八阶段的实践路线

从AI用户到AI开发者:零基础四个月分八阶段的实践路线

2024年初,我还在做一个和AI八竿子打不着的工作:打开电脑就是写合同、填表格、回邮件。说实话当时连API是什么都不太清楚,唯一对AI的印象是觉得“大模型很厉害,会写诗、会聊天”,但也仅此而已。后来因为一个活实在干不完…

2026/9/4 9:07:25 阅读更多 →
多智能体课堂开源项目OpenMAIC:从入门到本地部署实战

多智能体课堂开源项目OpenMAIC:从入门到本地部署实战

这标题一看,很多人第一反应是“又一个挂着名校头衔的营销项目”,但点进仓库翻了 issues、看了 release 记录之后,我的判断变了:OpenMAIC 能在半年拿到 2.8 万 star,靠的不是“清华大学”四个字,而是把多智能…

2026/9/4 9:07:25 阅读更多 →
CATIA V5R21安装部署全攻略:从环境准备到性能优化

CATIA V5R21安装部署全攻略:从环境准备到性能优化

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

2026/9/4 9:07:25 阅读更多 →
STM32F103定时器硬同步设计:TIM2-ADC触发与系统时序闭环

STM32F103定时器硬同步设计:TIM2-ADC触发与系统时序闭环

简介:本资源是2024年全国大学生电子设计竞赛H题的完整嵌入式解决方案,面向电子、自动化、通信等专业本科生及电赛备赛团队,聚焦信号采集、实时处理与硬件闭环控制等典型赛题任务。项目以STM32F103系列微控制器为核心平台,采用标准…

2026/9/4 9:06:25 阅读更多 →

日新闻

ESP32S2嵌入式收音机全栈开发实战指南

ESP32S2嵌入式收音机全栈开发实战指南

简介:本资源是一个基于ESP32-S2芯片的嵌入式综合实践项目,面向本科毕业设计、课程设计及实训开发人员,聚焦网络收音机与FM收音机双模功能实现,融合ESP-IDF框架、ESP-ADF音频开发库与LVGL图形界面库,具备完整软硬件协同…

2026/9/4 0:00:28 阅读更多 →
WorkBuddy+Python实战:从零搭建商品库存管理系统

WorkBuddy+Python实战:从零搭建商品库存管理系统

最近想自己动手做一个“商品库存管理系统”的人变多了。很多开网店、做小团队ERP选型、或者刚学Python的读者,不是不想用系统,而是被传统开发路径劝退了:要装数据库,要写后端接口,要学前端页面,还要考虑多人…

2026/9/4 0:00:28 阅读更多 →
旅游情感分析:基于Python的垂直场景深度解析

旅游情感分析:基于Python的垂直场景深度解析

简介:本资源是一份面向计算机专业本科生的毕业设计实践项目,聚焦旅游行业真实场景,解决旅游平台对用户评论情感倾向自动识别与管理的需求。系统基于Python 3.9.11与Anaconda环境构建,集成携程、马蜂窝双平台爬虫模块,并…

2026/9/4 0:00:28 阅读更多 →

周新闻

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

2026/9/3 4:22:22 阅读更多 →
数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

2026/9/3 4:22:01 阅读更多 →
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

2026/9/3 4:22:59 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/3 4:17:49 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/3 4:18:56 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/3 4:21:44 阅读更多 →