• 断点下载流程分析

1, 发送head协议获取下载文件的大小

2, 根据分段大小形成xml文件, xml文件的命令规则为文件名+_map.xml,举例如下

<download>

<Part>

<offset>0</offset>

<lenth>104857600</lenth>

<is_ok>false</is_ok>

</Part>

<Part>

<offset>104857600</offset>

<lenth>104857600</lenth>

<is_ok>false</is_ok>

</Part>

<Part>

<offset>209715200</offset>

<lenth>104857600</lenth>

<is_ok>false</is_ok>

</Part>

<Part>

<offset>314572800</offset>

<lenth>40413600</lenth>

<is_ok>false</is_ok>

</Part>

</download>

Part代表每一个块,offset带便当前的偏移量,lenth代表偏移的大小,is_ok用来标记当前块是否上传成功.

3, 开始进行上传, 每次成功下载一个文件, 下载到本地后, 便将对应的块置为true, 命令规则为:range的值 +文件名, 在这里进行下载的时候要在发送协议的时候使用range字段。

4, 下载所有分段结束后, 根据配置文件进行聚合。

5, 程序异常crush处理

在下载的过程中, 程序发生crush到时下载中断, 此时在此进行下载, 程序判断如上xml是否存在, 不存在重新生成, 存在则根据is_ok字段判断当前文件已经下载了哪些part, 如果字段的值为false, 则下载该字段, 下载完成之后进行聚合。

二. Java代码如下

见博客“断点下载java实例”

S3 api 断点下载相关推荐

  1. okhttp原理分析(持续更新),包含okio了解,拦截器以及断点下载的使用

    1. 原理 1. okio 最基本的接口只有两个:Sink(writer).Source(Read),大概相当于OutputStream和InputStream在原生接口中的地位.这两个接口中只定义了 ...

  2. java 下载暂停实现_Java实现多线程断点下载(下载过程中可以暂停)

    线程可以理解为下载的通道,一个线程就是一个文件的下载通道,多线程也就是同时开启好几个下载通道.当服务器提供下载服务时,使用下载者是共享带宽的,在优先级相同的情况下,总服务器会对总下载线程进行平均分配. ...

  3. java1.7线程暂停_Java实现多线程断点下载实例代码(下载过程中可以暂停)

    线程可以理解为下载的通道,一个线程就是一个文件的下载通道,多线程也就是同时开启好几个下载通道.当服务器提供下载服务时,使用下载者是共享带宽的,在优先级相同的情况下,总服务器会对总下载线程进行平均分配. ...

  4. Swift基础之使用Alamofire库进行网络请求和断点下载

    好久没有写过Swift相关的文章博客了,这里我就展示一下关于使用Alamofire库的方法 1.什么是Alamofire (1)Alamofire 的前身是 AFNetworking.AFNetwor ...

  5. Retrofit 2.0 超能实践(四),完成大文件断点下载

    作者:码小白 文/CSDN 博客 本文出自:http://blog.csdn.net/sk719887916/article/details/51988507 码小白 通过前几篇系统的介绍和综合运用, ...

  6. 即拿即用-Android多线程断点下载

    线程下载只需要确定好下载一个文件需要多少个线程,一般来说最好为3条线程,因为线程过多会占用系统资源,而且线程间的相互竞争也会导致下载变慢. 其次下载的时候将文件分割为三份(假设用3条线程下载)下载,在 ...

  7. iOS网络-NSURLSessionDataTask大文件离线断点下载

    什么叫离线断点下载,就是用户下载中关闭程序重新打开可以继续下载 代码实现如下: #import "ViewController.h" @interface ViewControll ...

  8. libcurl断点下载遇到的问题

    最近游戏把资源(图片.配置.lua)的加载.更新全部改了 ,加载其实还好,就是不走之前的zip解压方式. 以前的大体流程: 下载 –> 启动 –> 解压 –> 更新 –> 进入 ...

  9. 使用NSURLConnection实现大文件断点下载

    使用NSURLConnection实现大文件断点下载 由于是实现大文件的断点下载,不是下载一般图片什么的.在设计这个类的时候本身就不会考虑把下载的文件缓存到内存中,而是直接写到文件系统. 要实现断点下 ...

  10. Android多线程断点下载

    到华为后,信息管理特别严格,文件不能外发.所以好久都没写博客了,今天周日,老婆非要我学习.就闲来无事,写一篇博客,呵呵-- 前段时间,项目中提到了断点下载apk并静默安装的需求.本打算用应用市场成熟的 ...

最新文章

  1. 【html+css练习】小白使用html+css模拟音乐播放器构造了网页音乐播放器--1
  2. 必须为非自相关端口上的非激活接收指定至少一个已初始化的相关集
  3. SQLServer跟踪相关
  4. “我很迷茫很焦虑,需要你的建议”|她在百度内网发了个求助帖
  5. win2003实现单用户远程登录
  6. graphpad prism柱状图横坐标斜着_GraphPad Prism 绘图教程 | 如何在图表中对齐对象
  7. python爬取美女图片_Python 爬取美女图片
  8. 微机 —— 可编程并行接口芯片8255A 应用
  9. delphi webservice 内存释放_2020年7月——内存天梯图
  10. 【数学之美】分形图形动画演示欣赏
  11. 按键精灵定义全局变量_按键精灵2014全局数组变量传递(支持静态与动态)V2
  12. 传教士与野人过河问题 人工智能实验算法
  13. 南理工校外调剂计算机有消息,提醒!这些学校已经开启预调剂了!
  14. UVM field automation机制
  15. Linq to Sql 事务处理
  16. Java使用itextpdf生成PDF文件,用浏览器下载
  17. C++数据类型占据多少个字节
  18. VS2010 正式版下载链接
  19. 安装Office2010提示无法将数值写入注册表
  20. vue-vant项目字体以及组件字体适配

热门文章

  1. sql安装过程中,为 SQL Server 代理服务提供的凭据无效。若要继续操作,请为 SQL
  2. 学做‘视频剪辑’攻略
  3. JVM内存溢出问题排查
  4. STC单片机程序下载实战
  5. Altium中Smart PDF的使用
  6. 基于javaweb的超市管理系统设计与实现(含论文和源码)
  7. Xshell 4使用
  8. 快速入门Maxwell基本操作流程(2D部分)
  9. ts250服务器开启虚拟,ts250服务器恢复系统
  10. cad上样条曲线上的点太多了_CAD如何将样条曲线转换成多段线