超大文件上传下载以及秒传、提速和限速方案完整(包含前后端)

超大文件上传下载以及提速和限速实现方案,可以实现文件md5加优算法唯一表示、动态文件合并算法、并发文件传输、指定速度下载,可以选择redis或者mysql实现记录。

最近遇到项目需要使用大文件上传功能,几十个G的文件需要进行上传和下载,采用普通的上传方案已经不再适用,会导致很多问题,例如:

  • 文件上传很慢
  • 无法支持断点续传
  • 经常超时或失败
  • ……

目前实现方案最多的是通过 大文件分片 来解决上传下载问题,原理:

  • 将需要上传的文件按照一定的分割规则,分割成相同大小的数据块;
  • 初始化一个分片上传任务,返回本次分片上传唯一标识;
  • 按照一定的策略(串行或并行)发送各个分片数据块;
  • 发送完成后,服务端根据判断数据上传是否完整,如果完整,则进行数据块合成得到原始文件。

实现和解决途径:

  • 文件分割
  • 文件压缩
  • 流式传输
  • 传输编码
    超大文件上传下载以及秒传、提速和限速方案完整(包含前后端)_第1张图片

当使用 HTTP 进行大文件传输时,我们可以考虑对大文件进行压缩。通常浏览器在发送请求时,都会携带 accept 和 accep

你可能感兴趣的:(架构师成长之路,Python相关,前后端,大文件,上传,下载,限速,分片)