当前位置: 首页 > news >正文

MinIO文件存储合并

MinIO 存储分片文件

  • 极致的高性能,适配大文件分片的高并发读写,MinIO 采用单机多线程 + 分布式横向扩展架构,底层基于 Go 语言开发(无 GC 瓶颈)
  • 原生支持 S3 协议,完美适配分片上传的标准流程,分片上传的核心流程(初始化分片→并行上传分片→校验分片→合并分片→断点续传)是对象存储的标准能力,而 MinIO100% 兼容 S3 协议,原生提供分片上传的全量 API,原生能力可以直接覆盖业务需求。
  • 其他存储公有云对象存储 阿里云 OSS / 腾讯云 COS
  • 查询 MinIO 中分片是否存在,这个查询部分最后返回来一个 StatObiectResponse 对象,如果不存在就返回报错。
    // 用于与 MinIO 服务器交互@Autowiredprivate MinioClient minioClient;storagePath = "chunks/" + fileMd5 + "/" + chunkIndex;//查询「uploads 存储桶」中「指定路径(storagePath)」的对象是否存在,并获取该对象的全量元数据(大小、修改时间、类型等)StatObjectResponse stat = minioClient.statObject(     //statObject:MinIO 客户端提供的核心方法,方法名直译是「统计对象」功能就是查询对象的状态 / 元数据//是 MinIO SDK 中用于对象存在性检查、元数据获取的常用方法StatObjectArgs.builder()      //这是 MinIO SDK 采用的建造者模式(Builder Pattern) 实现.bucket("uploads")        //设置操作的存储桶名称为uploads,这是statObject的必选参数.object(storagePath)      //设置要查询的对象路径 / 名称为变量storagePath的值,这也是statObject的必选参数;.build()                  //建造者模式的收尾方法);
  • MinIO 文件上传
    PutObjectArgs putObjectArgs = PutObjectArgs.builder().bucket("uploads").object(storagePath).stream(file.getInputStream(), file.getSize(), -1).contentType(file.getContentType()).build();minioClient.putObject(putObjectArgs);

MinIO 文件合并

合并流程

  • 根据 userId 和 fileMd5 检查改合并请求是否有权限,也就是在 file_upload 表中是否有该记录,还有一层显示检查 userId ,双层检查
  • 检查分片是否上传完整:要在 controller 先判断 是否分块 上传数量 < 实际数量,然后在 service 层检测是否 上传数量 == 预期数量。双层检测
  • 合并文件
  • 发送任务到 Kafka
  • 流程:检查分片数量是否与预期一致 ,检查每个分片是否存在,合并分片,检查合并后的文件,清理分片文件,删除 Redis 中的分片状态记录,更新文件状态,生成预签名 URL(有效期为 1 小时)
  • 检查分片数量:首先在主表 file_upload 中找到文件的大小,然后每个分块 5MB 计算应该有多少块,再从数据库 chunk_info 中根据 userId 和 file_MD5 查询成功上传了多少个分块
http://www.jsqmd.com/news/342202/

相关文章:

  • 配资平台哪家正规-2026年2月权威排行,香港正规配资平台优缺点深度评测 - 资讯焦点
  • 2026国产EDA仿真设计工具与国产PCB电源仿真设计软件推荐 - 品牌2025
  • 清镇市英语雅思培训机构推荐,2026权威测评出国雅思辅导机构口碑榜单 - 老周说教育
  • 导师推荐8个降AI率网站,千笔AI解决论文AIGC检测难题
  • 配资实盘排名一览表-2026年最新推荐!三大顶尖配资实盘品牌深度优缺点评价 - 资讯焦点
  • 企业级用户必看:五家GEO服务商的API稳定性与数据更新测评 - 品牌2025
  • 股票配资大全-2026年2月股票配资平台排行:哪个好?推荐首选品牌深度评测 - 资讯焦点
  • 鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
  • sprintf(buff, %02x, data_vec[i]);的理解
  • 专著第二作者评副高有用吗?
  • 股票配资走势-2026年Q1港股配资品牌哪个好?综合实力Top 3推荐 - 资讯焦点
  • JAVA智能派单,同城家政服务一键触达
  • 2026优质灯具品牌推荐:技术与健康照明之选 - 品牌排行榜
  • 2026年进口圆锯机品牌供应商:谁才是优质之选? - 品牌推荐大师
  • 专著和教材的这些区别你知道吗?
  • 2026年权威评测:三大实盘配资正规平台优缺点全解析与排名推荐 - 资讯焦点
  • 计算机Nodejs毕设实战-基于nodejs的校园二手市场的设计与实现NodeJS大学生二手交易平台【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 2026高性价比国产DFM软件推荐:对标Zuken DFM Center、Mentor Valor NPI 国产替代方案 - 品牌2025
  • 救命神器9个降AIGC平台推荐!千笔AI助你轻松降AI率
  • LITESTAR 4D问答(二):您是否需要生成大量光度数据?
  • 计算机Nodejs毕设实战-基于uniapp+vue+nodejs的大厨上门做菜预约服务系统基于nodejs的私厨服务系统小程序【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 清镇市英语雅思培训机构推荐:2026权威测评出国雅思辅导机构口碑榜单 - 老周说教育
  • 实测才敢推!10个AI论文平台测评:自考毕业论文写作必备工具推荐
  • 蛋白粉有些什么品牌 2026年高吸收纯净配方实测10款|健身党闭眼入、乳糖不耐友好、补蛋白不踩坑 - 资讯焦点
  • 2026年深度评测:盘点香港最可靠股票配资平台的优缺点,为您推荐 - 资讯焦点
  • 2026年GEO优化服务商科学评估与权威推荐:避开常见误区,精准匹配你的需求 - 资讯焦点
  • LITESTAR 4D问答(一):您是否需要管理光度数据转换为IES LM-63或Eulumdat格式?
  • 《柳叶刀》关注2026长寿新定义:深度拆解奥本元Aoisao的NMN2.0技术 - 速递信息
  • 2026年深度评测:香港正规实盘配资哪个好?品牌优缺点权威排名 - 资讯焦点
  • ESP32 系列芯片适合做什么:主流型号、应用场景与物联网边缘智能定位