【实战】断点续传功能

断点下载功能平台方面流程,通过举例来描述:

一个5MB文件的下载

步骤1.将文件分成5部分

long sum=5*1024*1024

long i=4

i0=0到sum*1/5

i1=sum*1/5到sum*2/5

i2=sum*2/5到sum*3/5

i3=sum*3/5到sum*4/5

i4=sum*4/5到sum*5/5

步骤2.模拟断点下载功能

1)客户端向服务器分批次发送下载i0到i4部分文件的请求;

2)当文件下载到i2部分后,下载进度被迫停止;----被迫方式有3种情况,a1手动停止;a2网络重连;a3正在下载应用的程序被其他程序杀死;

3)当下载环境恢复到正常下载状态,客户端程序根据本地文件缺失i3到i4来向服务器分批次请求下载,服务器针对请求响应i3到i4部分的文件。这个过程称之为断点下载。

4)当i0到i5已全部下载完成,服务器端会给客户端发一个md5码来验证文件的完整性,客户端将已下载的5个部分的文件合并成一个apk文件,并根据得到md5码来验证apk文件的完整性。-----次部分的目的是,确保apk可安装。

测试方法:

1)apk大小;

2)同时下载多个文件;

3)10个文件下载,暂停其中几个;

4)文件下载暂停后,第二天在接着下载;

5)注意FTP中,apk命名的乱码问题;

时间: 2024-08-11 17:17:34

【实战】断点续传功能的相关文章

C# 基于 socket 的断点续传功能的实现

最近由于工作需要做了一个异地灾备传输工具,每周从广州服务器同步5g大小的数据库备份文件到北京服务器. 第一个版本的传输工具开发得很简单,两个window服务,一个负责发送,另一个负责接收,利用socket建立tcp链接,在测试服务器上传输10g大小的文件没有问题. 但部署到生产环境之后,每次传输了3g左右的数据就中断了,经分析是由于网络不稳定造成的,所以需要对传输工具添加断点续传功能,当传输意外中断时,可以自动连接,并完成上一次未完成的传输. 断点续传的原理很简单,就是分割需要传输的文件,每次传

C#技术分享【基于socket的断点续传功能】

最近开发了一个异地灾备传输工具,每周从广州服务器同步5g大小的数据库备份文件到北京服务器. 第一个版本的传输工具开发得很简单,两个window服务,一个负责发送,另一个负责接收,利用socket建立tcp链接,在测试服务器上传输10g大小的文件没有问题. 但部署到生产环境之后,每次传输了3g左右的数据就中断了,经分析是由于网络不稳定造成的,所以需要对传输工具添加断点续传功能,当传输意外中断时,可以自动连接,并完成上一次未完成的传输. 断点续传的原理很简单,就是分割需要传输的文件,每次传输一小块数

自己主动升级系统的设计与实现(续2) -- 添加断点续传功能 (附最新源代码)

一.缘起 之前已经写了两篇关于自己主动升级系统OAUS的设计与实现的文章(第一篇.第二篇).在为OAUS服务端添加自己主动检測文件变更的功能(这样每次部署版本号升级时,能够节省非常多时间.并且能够避免手动改动带来的错误)后,有部分使用者又提出了一个非常好的建议:为OAUS添加断点续传功能.由于假设网络状态不是非常好,就常常会在升级到一半的时候,由于OAUSclient掉线而导致升级失败,这个时候,就必须又一次開始整个升级过程. 即使升级中断的时候.已经完毕了99%,也必须重头再来.所以,为OAU

Java实现的断点续传功能

代码中已经加入了注释,需要的朋友可以直接参考代码中的注释.下面直接上功能实现的主要代码: import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; import java.net.HttpURLConnection; import java.net.Malfor

自动升级系统的设计与实现(续2) -- 增加断点续传功能 (附最新源码)

一.缘起 之前已经写了两篇关于自动升级系统OAUS的设计与实现的文章(第一篇.第二篇),在为OAUS服务端增加自动检测文件变更的功能(这样每次部署版本升级时,可以节省很多时间,而且可以避免手动修改带来的错误)后,有部分使用者又提出了一个很好的建议:为OAUS增加断点续传功能.因为如果网络状态不是很好,就经常会在升级到一半的时候,由于OAUS客户端掉线而导致升级失败,这个时候,就必须重新开始整个升级过程.即使升级中断的时候,已经完成了99%,也必须重头再来.所以,为OAUS增加断点续传功能是非常必

Java单线程文件下载,支持断点续传功能

前言: 程序下载文件时,有时会因为各种各样的原因下载中断,对于小文件来说影响不大,可以快速重新下载,但是下载大文件时,就会耗费很长时间,所以断点续传功能对于大文件很有必要. 文件下载的断点续传: 1.先下载临时文件,用于记录已下载大小:     2.http请求时设置Range参数       3.下载此次请求的数据: 直接上代码: 1 package com.test.service; 2 3 import java.io.File; 4 import java.io.InputStream;

Windows自带局域网断点续传功能

有些时候远程访问一些大的文件,但是中间网络不稳定短掉或者各种原因会导致复制半天的文件丢失. window自带有断网续传功能. 其实SMB共享支持断电续传的,就这个命令:(从远程服务器拷贝公司专用的SQL安装包就可以使用) copy /z \\niliu20.asiapacific.hpqcorp.net\Downloads\en_sql_server_2012_standard_edition_with_service_pack_2_x64_dvd_4692562.iso C:\SoftTool

【Flume】flume文件监控的source组件开发,支持断点续传功能

基于flume-ng中原有exec的source类型,通过tail依赖于操作系统去监听文件内容变化,其次,不支持断点续传的功能,特此,自行开发了一个组件,大家可以看看,一起探讨: https://github.com/cwtree/flume-filemonitor-source 望各位不吝指教!

Node.js mm131图片批量下载爬虫1.01 增加断点续传功能

这里的断点续传不是文件下载时的断点续传,而是指在爬行页面时有时会遇到各种网络中断而从中断前的页面及其数据继续爬行的过程,这个过程和断点续传原理上相似故以此命名. 代码如下: //====================================================== // mm131图片批量下载爬虫1.01 // 1.00 具备功能 // 1.01 增加断点续传 // 2017年11月15日 //========================================