首页 > 其他分享 >2020-01-16

2020-01-16

时间:2024-10-08 20:35:03浏览次数:1  
标签:文件 01 hash 16 断点 2020 分片 服务器 上传

分片上传

关于大文件分片上传的一些思考

浏览器

创建文件 hash

  • 创建文件的 hash 值。
  • 提交上传文件基本数据和文件 hash 值。
  • 如果存在的话,忽略本次文件上传;并将该文件路径指向用户服务器存储空间中。

当文件不存在或上传一部分文件数据时,进入下一流程。

文件分片

  • 访问服务器获取文件分片最大值。
  • 通过循环切割文件,并创建每一个分片的 hash

文件上传

  • 根据首次与服务器通信结果,判断是否为断点上传
  • 如果是断点上传,判断断点位置,
  • 获取对应分片,以此分片为起点开始上传

进度条

  • 不论是断点还是首次上传文件,进度条为已传分片数除总分片数

服务器

检测文件 hash

数据库检测 hash 是否存在

存在

  • 将该文件与用户传入文件基本信息结合
  • 存入云空间
  • 通知前端,文件秒传成功

不存在或断点

  • 创建临时上传空间(存在时间为最后断点上传后的 24 个小时或上传成功后)
  • 用户云盘数据中写入临时上传信息(存在时间为最后断点上传后的 24 个小时或上传成功后)
  • 如果是断点之后续传,告知前端最后一个分片 hash

文件上传

  • 获取分片数据,存入临时上传空间
  • 上传所有分片,合并分片,创建文件 hash,与文件原 hash 比对
  • hash 不一致,告知用户上传失败
  • hash 确认无误,放入用户云盘中
  • 清理数据

标签:文件,01,hash,16,断点,2020,分片,服务器,上传
From: https://www.cnblogs.com/honghaitao/p/18452486

相关文章

  • 01_nodejs_phantomjs_nodemailer
    代码块nodejs-phantomjs-nodemailer功能每天定时截图,并把截到的图片自动通过邮件发送。说明代码注释已经非常详细,就不多做说明,需要的朋友自己查看代码即可,主文件Mail.js,截图文件capturePart1.js,capturePart2.js,capturePart3.js,这里只展示了capturePart1.js其他两个类似。值得......
  • 2018_11_02_05
    JavaScript事件流定义申明:本文仅限私人学习之用----原文;下图展示了完整的js事件流捕获阶段:Document>ElementHtml>ElementBody==>ElementDiv冒泡阶段:ElementDiv>ElementBody>ElementHtml==>Document分析捕获阶段:document对象首先接收到click事件,然后事件沿DO......
  • 2019_07_16_01
    this、apply、call、bindthisthis永远指向最后调用它的那个对象apply、call的区别对于apply、call二者而言,作用完全一样,只是接受参数的方式不太一样。例如,有一个函数定义如下:varfunc=function(arg1,arg2){};就可以通过如下方式来调用:使用场景参数明确使用call......
  • 2018_11_02_04
    instanceof运算符原文语法objectinstanceofconstructor参数object要检测的对象.constructor某个构造函数描述instanceof运算符用来检测constructor.prototype是否存在于参数object的原型链上。//定义构造函数functionC(){}functionD(){}varo=......
  • 2020_01_28
    mac休眠之后wifi无法连接解决方案:删除与网络配置有关的plist文件第一步进入网络配置目录打开终端,输入cd/Library/Preferences/SystemConfiguration/备份原来的配置文件sudozipbackup.zip\com.apple.airport.preferences.plist\com.apple.......
  • 2018_10_21_03
    box-flex使用说明1.box-flex属性box-flex主要让子容器针对父容器的宽度按一定规则进行划分<acticle><section>01</section><section>02</section><section>03</section></acticle>acticle{display:box;display:-moz-box;display......
  • 2018_10_21_02
    border-style属性定义及使用说明border-style属性设置一个元素的四个边框的样式。此属性可以有一到四个值。border-style:dottedsoliddoubledashed;值描述dotted上边框是点状solid右边框是实线double下边框是双线dashed左边框是虚线border-style......
  • 2018_10_21_01
    1px边框问题7种方法解决移动端Retina屏幕1px边框问题在retina屏中实现1pxborder效果下文出自7种方法解决移动端Retina屏幕1px边框问题造成边框变粗的原因其实这个原因很简单,因为css中的1px并不等于移动设备的1px,这些由于不同的手机有不同的像素密度。在......
  • 2018_11_02_02
    原理数据类型window.onload=()=>{vartest1='abcdef';vartest2=123;vartest3=true;vartest4={};vartest5=[];vartest6;vartest7={abcdef:123};vartest8=['abcdef',123];functiontest9(){r......
  • 2018_11_02_03
    匿名函数和闭包在计算机科学中,闭包是函数的非局部变量(自由变量)的引用环境。包含自由变量的函数与为所有这些自由变量提供了变量绑定的环境一起,被称为闭包。以下内容为学习笔记,来自李炎恢老师的课堂纪要。1.匿名函数普通函数functionbox(){//函数名是boxreturn'Lee......