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

大文件上传:自定义协议

背景:文件上传涉及到前后端的交互,需要建立一个标准的通信协议,通过协议要能完成下面几件核心交互:

  1. 创建文件
  2. hash校验
  3. 分片数据上传
  4. 分片合并
创建文件协议

当客户端发送分片到服务器时,需要告知服务器分片属于哪一次文件上传,因此需要一个唯一标识来标识某一次文件上传。

创建文件协议就是用于获取文件上传的唯一标识。

  • uploadToken: 文件上传的唯一标识
  • chunkSize: 分片大小,单位字节
hash校验协议

客户端有时需要校验单个分片或整个文件的hash,服务器需要告知客户端它们目前的具体情况。

image-20240313084315768
  • Upload-Hash-Type: 取值chunkfile,分别代表分片hash和文件整体hash
  • Upload-Hash: 分片或文件的具体hash值
  • hasFile: 指示服务器是否已经存储了对应的分片或文件
  • rest: 当校验文件hash时特有的响应字段, 指示该文件还剩余哪些hash没有上传
  • url: 当校验文件hash时特有的响应字段, 如果该文件已完成上传出现该字段, 表示文件的请求地址
分片数据上传协议

通过此协议,上传具体的文件分片数据

image-20240313102553900
分片合并协议

当所有的分片全部上传后,通过此协议请求服务器完成分片合并。

image-20240313102931840
http://www.lryc.cn/news/608020.html

相关文章:

  • 进程 Vs 线程
  • 电路原理图绘制专业实战教程1
  • 深入 Go 底层原理(十五):cgo 的工作机制与性能开销
  • Minimizing Coins(Dynamic Programming)
  • OAuth 2.0 的安全升级版授权协议 OAuth 2.1 详解
  • 【转】大模型安全治理的现状与展望
  • 【龙芯99派新世界】buildroot快速使用笔记
  • WPFC#超市管理系统(4)入库管理
  • STM32——启动过程浅析
  • Shell【脚本 02】离线安装配置Zookeeper及Kafka并添加service服务和开机启动(脚本分析)
  • Kubernetes Gateway API 详解:现代流量路由管理方案
  • Flink2.0学习笔记:Stream API 窗口
  • ubuntu 系统风扇控制软件 CoolerControl
  • 关于项目发布中到后半夜的一些总结
  • Maven - 并行安全无重复打包构建原理揭秘
  • 公网服务器上Nginx或者Openresty如何屏蔽IP直接扫描
  • 译|Netflix 技术博客:一个利用视觉-语言模型和主动学习高效构建视频分类器的框架
  • 初始C语言---第四讲(数组)
  • Python So Easy 大虫小呓三部曲 - 高阶篇
  • 【语音技术】什么是实体
  • appium中urllib3.exceptions.LocationValueError: No host specified. 的错误解决办法
  • cv快速input
  • InfluxDB 与 Node.js 框架:Express 集成方案(二)
  • SpringBoot与TurboGears2跨栈、整合AI服务、智能客服路由系统整合实战
  • 基于Redis自动过期的流处理暂停机制
  • dbt中多源数据的处理
  • 仿真电路:(十七下)DC-DC升压压电路原理简单仿真
  • Git下载及安装保姆级教程
  • 电子电气架构 --- 汽车网络安全概述
  • 深入 Go 底层原理(九):context 包的设计哲学与实现