找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

729

积分

0

好友

92

主题
发表于 昨天 18:58 | 查看: 1| 回复: 0

谁没有在文件存储和上传功能上踩过坑呢?大文件上传超时、重复传输浪费带宽、不同环境下的兼容性问题、繁琐的权限控制配置……每次对接MinIO可能都要编写一堆重复的样板代码,确实令人头疼。

现在,有了 MinIO-Plus!它就像是MinIO的“黄金搭档”,采用无侵入式的设计,专注于为MinIO提供功能增强与优化,帮你解决上述烦恼。

🌟 什么是MinIO-Plus?

MinIO-Plus是一款开源且免费的MinIO二次封装与增强工具。它旨在拓展MinIO的功能,解决对象存储在大文件分片上传、断点续传、缩略图生成、访问权限控制等场景下的常见难题,核心目标是简化开发、提高效率
✅ 采用 Apache License 2.0 开源协议
✅ 100%免费并可商用,无任何隐形费用

模块结构图

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

🚀 核心特性

MinIO-Plus的特性非常贴合项目实战需求,每一个都针对常见痛点:

1. 无侵入集成,零成本接入

是否担心引入新工具会影响现有工程?MinIO-Plus的设计原则就是只做增强,不改变原生MinIO的行为与接口,实现平滑接入。

2. 秒传+断点续传,提升用户体验

  • 秒传:自动为上传文件计算哈希摘要进行唯一性识别。当用户再次上传相同文件时,系统会直接返回已存在的文件链接,没有实际的文件传输过程,实现“秒级”完成,极大节省服务器带宽。
  • 断点续传:在上传过程中遇到网络等问题导致传输失败时,只需重新传输未完成的部分文件块即可,无需从头开始整个任务,让大文件上传不再令人焦虑。

3. 并发上传,最大化带宽利用率

工具会自动将大文件切分为若干小块,并支持并发上传多个部分。这能充分利用可用带宽资源,显著提升大文件的上传速度。

4. 自动生成缩略图,省去额外开发

当上传图片文件时,MinIO-Plus会自动识别文件类型,并一键生成可配置大小的缩略图。开发者无需再自行编写或集成复杂的图像处理逻辑。

5. 智能桶策略,文件管理更清晰

支持按照文档、压缩包、音频、视频、图片等文件类型自动创建存储桶(Bucket)并进行路径规划。这有助于摆脱传统操作系统文件目录体系的性能限制,使海量文件管理并然有序。

6. 精细化权限控制,保障数据安全

提供基于用户和用户组的文件权限管理功能。可以对重要文件设置细粒度的访问权限,配置过程简单直观,有效防止数据泄露。

7. 访问链接时效控制,灵活安全

基于MinIO的预签名URL机制,能够生成带有效期的上传或下载地址。链接过期后自动失效,在满足业务灵活性的同时确保了安全性。

8. 客户端直连,性能无损

前端应用可以直接对接MinIO服务端,项目后端工程无需承担文件流的搬运工作。在享受所有增强功能的同时,还能完全保持MinIO原生的高性能特性。

9. 广泛兼容,适配多环境

支持 JDK 8 及以上版本,并兼容 Spring Boot 2 和 Spring Boot 3 框架。

🛠️ 快速集成指南

引入依赖

对于 Spring Boot 2 项目:

<!-- Maven示例 -->
<dependencies>
    <dependency>
        <groupId>me.liuxp</groupId>
        <artifactId>minio-plus-all-springboot2-starter</artifactId>
        <version>1.0.5</version>
    </dependency>
    <dependency>
        <groupId>me.liuxp</groupId>
        <artifactId>s3-api-minio</artifactId>
        <version>1.0.5</version>
    </dependency>
</dependencies>

对于 Spring Boot 3 项目:

<!-- Maven示例 -->
<dependencies>
    <dependency>
        <groupId>me.liuxp</groupId>
        <artifactId>minio-plus-all-spring-boot-starter</artifactId>
        <version>1.0.5</version>
    </dependency>
    <dependency>
        <groupId>me.liuxp</groupId>
        <artifactId>s3-api-minio</artifactId>
        <version>1.0.5</version>
    </dependency>
</dependencies>

💡 提示:你也可以选择引入 minio-plus-core-springboot-starter(仅包含 Service 层接口,不包含 Controller)。

<dependencys>
    <dependency>
        <groupId>me.liuxp</groupId>
        <artifactId>minio-plus-core-springboot-starter</artifactId>
        <version>1.0.5</version>
    </dependency>
    <dependency>
        <groupId>me.liuxp</groupId>
        <artifactId>s3-api-minio</artifactId>
        <version>1.0.5</version>
    </dependency>
</dependencys>

配置信息

application.ymlapplication.properties 中配置MinIO连接信息及相关参数:

##################################################################
### MinIO Plus Config
##################################################################
minioplus:
    # MinIO 部署地址
    backend: http://localhost:9000
    # 授权key
    key: minioadmin
    # 密钥
    secret: minioadmin
    part:
        size: 10485760  # 分片大小设置为 10MB
    thumbnail:
        size: 500   # 缩略图宽度 500px

(项目官网:https://minioplus.liuxp.me

MinIO-Plus功能特性界面概览

💡 总结

MinIO-Plus 在 MinIO 强大且灵活的对象存储能力之上,做了恰到好处的增强,精准解决了项目开发中遇到的实际痛点。如果你正在使用或考虑使用 MinIO 作为项目的文件存储方案,那么这个增强工具绝对值得一试。作为一款优秀的开源项目,它也欢迎社区的反馈与贡献。

希望本文的介绍能帮助你更高效地处理文件存储需求。如果想了解更多实用的开发者工具与技术实践,欢迎来到 云栈社区 交流探讨。




上一篇:计算机发展全解析:从算盘、机械计算器到ENIAC电子计算机
下一篇:Blaze Persistence提升JPA复杂查询:实体视图与流畅API实战指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-26 06:10 , Processed in 0.279589 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表