Day24 资料的续传

由於Object一般都很大,几十GB都属於正常现象,所以上传或下载的过程中难免回遇到网路不稳的问题导致中断

用过chrome的人都知道,如果下载到一半失败了,可以按右键然後继续,从中间下载,又或是用过着名的FTP工具-Filezilla,有时候上传一个文件到server,但是中断了,如果再把原来的文件拖进去,可以不用重新上传

那这是怎麽做到的呢?首先,我们必须在object的上传和下载API实作这个功能,我们可以让使用者多传几个参数,例如开始位置和长度,因为object本质上是个非结构化数据,就是一个很长的byte array组成,接下来可以把下载和上传拆开来讲

下载

先说下载是因为下载比较简单,如果没意外的话,前端只要一直下载就好,如果遇到断网,前端会记录好已经下载多长的资料,根据长度作为起始位置继续下载,所以在下载前,前端需要向server要一个object的长度大小

上传

上传就稍微复杂一点,他不能一直上传直到断线,因为前端不知道上传到哪里断了,所以解决方法是一小段一小段上传,例如一次request就上传4MB,server回传OK代表这一小块上传成功

当然,以上的方法都是基本的架构,想要更有效率更快的方法还有更多的演算法,本次Lab只实作了上述最简单的方法思路


<<:  [Day24] 网格交易机器人-结尾

>>:  [机派X] Day 12 - 那些年还没介绍的无人机部件

[Golang]同步工具-sync包的原子操作(下)-心智图总结

1. 比较和交换(compare and swap,简称CAS)跟交换(swap)有什麽不同? 比较...

[ Day 23 ] - 阵列资料处理 - map

阵列资料处理 - map 特性 可以将原始阵列经过处理後,重新组合回传一个新阵列 不会影响原始阵列 ...

Updated 1Z0-1056-21 Dumps That Bring Outstanding Results in Oracle Exam

https://github.com/mikeysanojr/Development-Lifecyc...

Day.6 「只要我想,我也能把 div 变 table!」 —— CSS display 属性

如同前面章节所说,一开始的标签元素,很单调只有一行并没有各式各样的元素,是浏览器内建的样式表赋予它...

[13th][Day6] func

about func 有了变数、有了保留字之後,我们需要 方法/function/method/函式...