zoukankan      html  css  js  c++  java
  • 大文件上传实现总结


    大文件上传实现方式
      前端切片,分片上传,后端接收完切片后合并

    判断切片上传完成
      a.每个切片都携带切片数量最大值,后端在接收到这个数量切片时合并
      b.前端判断上传完成后发送合并请求

    后台合并切片
      a.切片携带顺序编号,后台按顺序号排列后合并
      b.切片携带size信息,后台可不按顺序合并,也可多线程合并

    上传进度判断
      a.前端监听
      b.后端使用webSocket发送进度信息给前端

    断点续传
      a.前端使用localstorage记录已上传的切片,缺陷是换了浏览器就不再有效

      b.后端保存已上传的切片的hash或md5(hash应该使用文件内容生成,不应使用文件名等易变的元素;文件过大,生成hash可能需要时间过程,可使用异步的方式),前端上传前从后台获取已上传的切片

    文件秒传
      对比文件的hash,如果相同则返回上传成功

    暂停上传
      暂停其实是取消整个切片的上传

    恢复上传
      需要向后端请求已上传的切片信息,跳过这些切片

    切片上传失败的处理
      hash或md5验证失败,不一致重传
      根据切片数判断切片缺失

    前端切片原因
      http请求不限制文件大小,但外部可能有限制,比如网关、服务端设置post请求http头的文件长度
      前端、网关和服务端限制文件大小提示

    分布式服务多个分配上传请求要打到同一个服务器
      pod亲和性
      nginx的ip_hash


    扩展

      多切片、多文件并发上传

  • 相关阅读:
    EL表达式格式化日期
    EL表达式格式化日期
    Jquery中find与each方法使用详解
    Jquery中find与each方法使用详解
    快递100接口使用
    快递100接口使用
    android 中context的具体作用和意义
    startactivityforresult使用
    android 获取sharedpreference的三种方法的区别
    关于contentprovider的几个问题
  • 原文地址:https://www.cnblogs.com/songwenlong/p/15772716.html
Copyright © 2011-2022 走看看