文件传输方法和装置及服务器系统.pdf

上传人:a2 文档编号:19652 上传时间:2018-01-12 格式:PDF 页数:21 大小:1.59MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410014644.6

申请日:

2014.01.13

公开号:

CN104780092A

公开日:

2015.07.15

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):H04L 12/58申请日:20140113|||公开

IPC分类号:

H04L12/58; H04L29/06; H04L12/861(2013.01)I

主分类号:

H04L12/58

申请人:

阿里巴巴集团控股有限公司

发明人:

陈晓峰; 毛怀源

地址:

英属开曼群岛大开曼

优先权:

专利代理机构:

北京三友知识产权代理有限公司11127

代理人:

党晓林

PDF下载: PDF下载
内容摘要

本申请实施方式公开了文件传输方法和装置及服务器。从待传输文件分割出一个或一个以上第一数据块;依照网络协议将所述一个或一个以上第一数据块发往预定地址;根据所述一个或一个以上第一数据块发往所述预定地址所用的时间计算当前网速;从待传输文件的剩余部分分割出一个或一个以上第二数据块,根据所述当前网速确定所述第二数据块的字节数量;依照网络协议将所述一个或一个以上第二数据块发往所述预定地址。利用本申请各实施方式,可以动态调整数据块的大小,合理利用网络资源。

权利要求书

1.  一种文件传输方法,其特征在于,包括: 
从待传输文件分割出一个或一个以上第一数据块; 
依照网络协议将所述一个或一个以上第一数据块发往预定地址; 
根据所述一个或一个以上第一数据块发往所述预定地址所用的时间计算当前网速; 
从待传输文件的剩余部分分割出一个或一个以上第二数据块,根据所述当前网速确定所述第二数据块的字节数量; 
依照网络协议将所述一个或一个以上第二数据块发往所述预定地址。 

2.
  如权利要求1所述的方法,其特征在于,计算当前网速的步骤包括: 
记录所述一个或一个以上第一数据块的发出时间T1; 
接收从所述预定地址发回的响应信息,所述响应信息附带时间T2; 
计算当前网速V,V=M/(T2-T1),其中,M为所述一个或一个以上第一数据块包括的字节数量。 

3.
  如权利要求1所述的方法,其特征在于,确定所述第二数据块的字节数量的步骤包括:将所述当前网速与预定网速比较,若所述当前网速大于所述预定网速,将所述第二数据块的字节数量设置为第一预定字节数量。 

4.
  如权利要求3所述的方法,其特征在于,确定所述第二数据块的字节数量的步骤包括:比较所述当前网速与所述预定网速,若所述当前网速小于所述预定网速,确定所述第二数据块的字节数量为第二预定字节数量,所述第二预定字节数量小于所述第一预定字节数量。 

5.
  如权利要求1所述的方法,其特征在于,确定所述第二数据块的字节数量的步骤包括:比较所述当前网速与发送前一数据块时的网速,若所述当前网速大于发送前一数据块时的网速,设置所述第二数据块的字节数量大于所述前一数据块的字节数量。 

6.
  如权利要求1所述的方法,其特征在于,确定所述第二数据块的字节数量的步骤包括:比较所述当前网速与发送前一数据块时的网速,若所述当前网速小于发送前一数据块时 的网速,设置所述第二数据块的字节数量小于所述前一数据块的字节数量。 

7.
  如权利要求1所述的方法,其特征在于,确定所述第二数据块的字节数量的步骤包括:将当前网速与预定参数相乘得出动态字节数量,将所述动态字节数量作为所述第二数据块的字节数量。 

8.
  如权利要求1所述的方法,其特征在于,确定所述第二数据块的字节数量的步骤包括: 
将当前网速与预定参数相乘得出动态字节数量; 
比较所述动态字节数量与第三预定字节数量,二者中的大值作为第二数据块的字节数量。 

9.
  如权利要求7或8所述的方法,其特征在于,所述预定参数的取值范围为:0<预定参数≤1。 

10.
  如权利要求8所述的方法,其特征在于,所述第三预定字节数量的取值范围为5K字节至30K字节。 

11.
  如权利要求1所述的方法,其特征在于,确定所述第二数据块的字节数量的步骤包括: 
根据所述当前网速查找预定分块表得到数据块的字节数量,所述预定分块表对应网速记录有对应的字节数量。 

12.
  一种文件传输装置,其特征在于,包括: 
第一数据分块模块,用于从待传输文件分割出一个或一个以上第一数据块; 
第一发送模块,用于依照网络协议将所述一个或一个以上第一数据块发往预定地址; 
速度计算模块,用于根据所述一个或一个以上第一数据块发往所述预定地址所用的时间计算当前网速; 
分块确认模块,用于根据所述当前网速确定第二数据块的字节数量; 
第二数据分块模块,用于从待传输文件的剩余部分分割出一个或一个以上第二数据块; 
第二发送模块,用于依照网络协议将所述一个或一个以上第二数据块发往所述预定地 址。 

13.
  如权利要求12所述的装置,其特征在于,所述速度计算模块包括: 
记录模块,用于记录发出所述一个或一个以上第一数据块的时间T1; 
接收模块,用于接收从所述预定地址发回的响应信息,所述响应信息附带时间T2; 
处理模块,用于计算当前网速V,V=M/(T2-T1)。 

14.
  如权利要求12所述的装置,其特征在于,所述分块确认模块比较所述当前网速与预定网速,若所述当前网速大于所述预定网速,将所述第二数据块的字节数量设置为第一预定字节数量。 

15.
  如权利要求14所述的装置,其特征在于,所述分块确认模块比较所述当前网速与预定网速,若所述当前网速小于所述预定网速,确定所述第二数据块的字节数量为第二预定字节数量,所述第二预定字节数量小于所述第一预定字节数量。 

16.
  如权利要求12所述的装置,其特征在于,所述分块确认模块比较所述当前网速与发送前一数据块时的网速,若所述当前网速大于发送前一数据块时的网速,设置所述第二数据块的字节数量大于所述前一数据块的字节数量。 

17.
  如权利要求12所述的装置,其特征在于,所述分块确认模块比较所述当前网速与发送前一数据块时的网速,若所述当前网速小于发送前一数据块时的网速,设置所述第二数据块的字节数量小于所述前一数据块的字节数量。 

18.
  如权利要求12所述的装置,其特征在于,所述分块确认模块还包括: 
计算模块,用于将当前网速与预定参数相乘得出动态字节数量,将所述动态字节数量作为所述第二数据块的字节数量。 

19.
  如权利要求12所述的装置,其特征在于,所述分块确认模块还包括: 
计算模块,用于将当前网速与预定参数相乘得出动态字节数量; 
比较模块,比较所述动态字节数量与第三预定字节数量,二者中的大值作为数据块的字节数量。 

20.
  如权利要求18或19所述的装置,其特征在于,所述预定参数的取值范围为:0<预定参数≤1。 

21.
  如权利要求19所述的装置,其特征在于,所述第三预定字节数量的取值范围为5K字节至30K字节。 

22.
  如权利要求12所述的装置,其特征在于,所述分块确认模块包括: 
预定分块表,包括网速以及与所述网速对应的字节数量; 
查表模块,用于在所述预定分块表中查找与所述当前网速对应的字节数量。 

23.
  一种服务器系统,其特征在于,包括: 
第一数据分块模块,用于从待传输文件分割出一个或一个以上第一数据块; 
第一发送模块,用于依照网络协议将所述一个或一个以上第一数据块发往预定地址; 
速度计算模块,用于根据所述一个或一个以上第一数据块发往所述预定地址所用的时间计算当前网速; 
分块确认模块,用于根据所述当前网速确定第二数据块的字节数量; 
第二数据分块模块,用于从待传输文件的剩余部分分割出一个或一个以上第二数据块; 
第二发送模块,用于依照网络协议将所述一个或一个以上第二数据块发往所述预定地址。 

24.
  如权利要求23所述的服务器系统,其特征在于,所述服务器系统还包括:业务服务器、缓存服务器、和文件服务器, 
所述业务服务器包括:接收器,用于在接收到文件传输装置发出的数据块后,将所述数据块提供给所述缓存服务器;合成器,用于在接收到全部数据块之后将所述数据块合并成文件,将合成后的文件提供给文件服务器; 
所述缓存服务器,用于将所述数据块存储在缓存存储器中; 
所述文件服务器,用于保存所述合成器合成的文件。 

25.
  如权利要求24所述的服务器系统,其特征在于,所述缓存存储器为缓存存储器阵列,所述缓存服务器中设置有存储索引,所述存储索引中记录有每个数据块的存储地址。 

说明书

文件传输方法和装置及服务器系统
技术领域
本申请涉及网络通信技术领域,特别涉及一种文件传输方法和装置及服务器系统。
背景技术
在网络通信技术领域中,服务器和用户终端之间经常进行文件的上传和下载。比如,用 户通过手机或电脑将图片、音频文件、视频文件或文本资料上传至服务器,或者通过手机或 电脑下载存储在服务器中的图片、音频文件、视频文件或文本资料。
在用户终端和服务器之间上传或下载文件时,会利用断点续传技术。现有技术中,断点 续传技术会将文件划分成若干固定大小的数据块。文件传输过程中,可以有多个线程,每个 线程上传或下载一个数据块,当一个文件的全部数据块上传或下载结束后,重新再合成形成 文件。在文件进行上传或下载的过程中,可能因网络连接问题而出现传输失败的情况。比如 在传输过程中网络连接中断,这会导致正在传输的数据块传输失败,在网络恢复之后,会从 网络中断时传输失败的数据块处继续传输,而无需将文件的全部数据块重新再次传输。
请参阅图1,在此举例为用户终端采用Http协议向服务器上传文件,文件的名称为 “Test.jpg”,文件大小为1500字节,将100字节作为一个数据块,这样一共有15个数据块。 用户终端向服务器发出Request请求,在一个Request请求中会包含文件名称“Test.jpg”,内 容范围“0~99/1500”以及当前数据块。其中,内容范围中的“0~99”表示“字节起始地址~ 字节结束地址”,“1500”表示文件的总字节数,当前数据块的字节为“字节起始地址~字 节结束地址”对应的字节。服务器端接收一个Request请求后,会返回给用户终端一个 Response,即响应信息。在Response中会包括一个状态码。如果成功接收Request请求的内容, 且当前数据块不是所述文件的最后一个数据块,则状态码为206,表示用户终端可以继续传 输;若当前数据块是所述文件的最后一个数据块,则状态码为200,告知用户终端的文件上 传成功结束。
现有的断点续传技术,在开始数据传输之前,按照固定的规则对文件划分数据块,每个 数据块包含的字节数量是固定的。对于用户终端如手机,存在使用Wifi上网和使用2G上网的 网络速度区别。这样,若所述数据块包含的字节数量较多,则用户使用2G上网上传或下载文 件时,由于网络速度较慢,使得进度条需要较长的时间才能够出现变化,用户无法及时了解 传输进度,导致用户体验较差。如果迎合用户使用2G上网的需要,将所述数据块包括较少的 字节数量,则当用户使用Wifi上网且网络速度较快时,网络资源又无法得到充分利用,即用 户终端每次发送一个Request请求之后,都需要等待服务器端的Response。所述数据块包含的 字节数越少,则一个文件划分的数据块越多,相应的,在传输一个文件过程中,用户终端需 要越多的时间在等待服务器的Response。再者,由于使用2G上网和使用Wifi上网,网络速度 往往相差较大,使得难以确定合适的数据块大小能够兼顾两者的需求。
发明内容
本申请实施方式的目的是提供一种文件传输方法和装置及服务器系统,以使得传输过程 与实际网络速度尽量匹配。
为解决上述技术问题,本申请提供一种文件传输方法,包括:
从待传输文件分割出一个或一个以上第一数据块;
依照网络协议将所述一个或一个以上第一数据块发往预定地址;
根据所述一个或一个以上第一数据块发往所述预定地址所用的时间计算当前网速;
从待传输文件的剩余部分分割出一个或一个以上第二数据块,根据所述当前网速确定所 述第二数据块的字节数量;
依照网络协议将所述一个或一个以上第二数据块发往所述预定地址。
本申请还提供一种文件传输装置,包括:
第一数据分块模块,用于从待传输文件分割出一个或一个以上第一数据块;
第一发送模块,用于依照网络协议将所述一个或一个以上第一数据块发往预定地址;
速度计算模块,用于根据所述一个或一个以上第一数据块发往所述预定地址所用的时间 计算当前网速;
分块确认模块,用于根据所述当前网速确定第二数据块的字节数量;
第二数据分块模块,用于从待传输文件的剩余部分分割出一个或一个以上第二数据块;
第二发送模块,用于依照网络协议将所述一个或一个以上第二数据块发往所述预定地 址。
本申请还提供一种服务器系统,包括:
第一数据分块模块,用于从待传输文件分割出一个或一个以上第一数据块;
第一发送模块,用于依照网络协议将所述一个或一个以上第一数据块发往预定地址;
速度计算模块,用于根据所述一个或一个以上第一数据块发往所述预定地址所用的时间 计算当前网速;
分块确认模块,用于根据所述当前网速确定第二数据块的字节数量;
第二数据分块模块,用于从待传输文件的剩余部分分割出一个或一个以上第二数据块;
第二发送模块,用于依照网络协议将所述一个或一个以上第二数据块发往所述预定地 址。
由以上本申请实施方式提供的技术方案可见,本申请实现动态调整数据块的大小,进而 能够满足用户的使用需求。在网络速度较快时,本申请能够增大数据块包括的字节数量,从 而减少了等待预定地址的响应时间,整体缩短了文件的发送时间;在网络速度较慢时,能够 减少数据块包括的字节数量,使文件发送的进度条能够呈现给用户一个连续的进度状态,提 供给用户较佳的使用体验。综上,本申请的技术方案能够兼顾网速较快的网络如Wifi网络, 和网速较慢的网络如2G网络的使用需求。
附图说明
为了更清楚地说明本申请实施方式或现有技术中的技术方案,下面将对实施方式或现有 技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请 中记载的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。
图1为现有技术中断点续传技术的示意图;
图2为本申请一个实施方式提供的文件传输装置的模块图;
图3为本申请一个实施方式提供的文件传输方法的流程图;
图4为本申请一个实施方式提供的速度计算模块的模块图;
图5为本申请一个实施方式提供的计算当前网速的流程图;
图6为本申请一个实施方式提供的分块确认模块的模块图;
图7为本申请一个实施方式提供的确认第二数据块的字节数量的流程图;
图8为本申请一个实施方式提供的分块确认模块的模块图;
图9为本申请一个实施方式提供的服务器系统的模块图;
图10为本申请一个实施方式提供的服务器系统的流程图。
具体实施方式
本申请实施方式提供一种文件传输方法和装置及服务器系统。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施方式 中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方 式仅仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领 域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都应当属于本申 请保护的范围。
请参阅图2,为本申请的一个实施方式提供的文件传输装置100。
文件传输装置100可以为任意的用户终端,也可以为服务器,还可以为服务器系统。用 户终端可以为任意形式的移动终端如手机、平板电脑或笔记本电脑,也可以为台式电脑。服 务器可以为实现本申请功能的硬件,也可以为记录在硬件上的逻辑体。服务器系统可以由若 干的服务器组成。
在场景为用户通过用户终端向服务器上传文件时,用户终端为文件传输装置100,文件 传输装置100向服务器发送文件的过程,即为向服务器上传文件的过程。在场景为用户通过 用户终端从服务器下载文件时,服务器为文件传输装置100,文件传输装置100向用户终端发 送文件的过程,即为用户终端下载文件的过程。文件传输装置100能够按照当前网速动态调 整文件发送过程中的数据块包括的字节数量,从而能够在网速较快时能够相对充分利用网络 资源缩短文件发送时间,在网速较慢时能够较好的向用户展示发送进度提升用户的感官体 验。
文件传输装置100可以包括:第一数据分块模块10、第一发送模块20、速度计算模块30、 分块确认模块40、第二数据分块模块50和第二发送模块60。
第一数据分块模块10用于从待传输文件分割出一个或一个以上第一数据块。
在本实施方式中,待传输文件为需要文件传输装置100发送的文件。具体的,待传输文 件可以为图片、文字资料或影音文件等等,在此限于篇幅不再列举。在文件传输时,将待传 输文件划分成一个或多个块,每个块为一个数据块。第一数据分块模块10用于从待传输文件 中划分出第一数据块,第一数据块的数量可以为一个或一个以上。第一数据块分块模块10可 以规定第一数据块包括的字节数量。一个以上第一数据块可以为一个以上具有相同字节数量 的数据块。
第一发送模块20用于依照网络协议将一个或一个以上第一数据块发往预定地址。
在本实施方式中,网络协议可以为FTP协议或Http协议。预定地址可以为服务器或用户 终端的网络地址。具体的,例如在场景为用户通过用户终端向服务器上传文件时,预定地址 为服务器的网络地址;再例如在场景用户通过用户终端从服务器下载文件时,预定地址为用 户终端的网络地址。若为首次发送数据块,则可以设定预定数值,即第一个或一个以上数据 块包括预定数值个字节,通过发出第一个或一个以上数据块便可以进一步计算当前网速,从 而可以根据当前网速调整数据块的大小。
速度计算模块30用于根据所述一个或一个以上第一数据块发往所述预定地址所用的时 间计算当前网速。
在本实施方式中,所述速度计算模块30可以为具有计算功能的芯片,也可以为实现运算 功能的逻辑体。在计算当前网速时,可以为根据一个第一数据块发送至所述预定地址所用的 时间计算,也可以为根据一个以上第一数据块发送至所述预定地址总共所用的时间计算。具 体的,举例为,发送一个第一数据块所用的时间为T,则根据所述第一数据块的字节数量和 所用的时间T进一步计算当前网速。再比如,发送10个第一数据块所用的时间为10T,则根据 该10个第一数据块的总字节数量和所用时间10T进一步计算当前网速。
分块确认模块40,用于根据所述当前网速确定第二数据块的字节数量。
分块确认模块40可以根据当前网速调整下一个或一个以上待传输的数据块的大小,即调 整待传输的数据块所包括的字节数量。分块确认模块40可以比较当前网速与预定网速,若当 前网速大于预定网速,将第二数据块的字节数量设置为第一预定字节数量;若当前网速小于 预定网速,设置第二数据块的字节数量为第二预定字节数量。第二预定字节数量小于第一预 定字节数量。具体的,例如当前网速为300K字节/秒,预定网速为250K字节/秒,第一预定字 节数量为40K字节,第二预定字节数量为25K字节,分块确认模块40比较得出当前网速大于 预定网速,则将数据块的字节数量确定为40K;在当前网速减小至200K字节/秒时,分块确认 模块40将数据块的字节数量确定为25K。
分块确认模块40还可以比较当前网速与发送前一数据块时的网速,若当前网速大于发送 前一数据块时的网速,设置待传输的下一个或一个以上数据块的字节数量大于前一数据块的 字节数量。若当前网速小于发送前一数据块时的网速,设置待传输的下一个或一个以上数据 块的字节数量小于前一数据块的字节数量。在当前网速大于发送前一数据块时的网速时,可 以为下一个或一个以上待传输的数据块的字节数量相较于前一数据块的字节数量增加预定 数量的字节。在当前网速小于发送前一数据块时的网速时,可以为下一个或一个以上待传输 的数据块的字节数量相较于前一数据块的字节数量减小预定数量的字节。具体的,例如当前 网速为300K字节/秒,发送前一数据块时的网速为260K字节/秒,前一数据块的字节数量为 50K,预定数量为10K字节,则下一个或一个以上数据块的字节数量为60K;例如当前网速为 200K字节/秒,发送前一数据块时的网速为300K字节/秒,前一数据块的字节数量为60K,预 定数量为10K字节,则下一个或一个以上数据块的字节数量为50K。
当然,在网速非常稳定的情况下,即网速恒定不发生改变时,可以维持数据块的字节数 量不发生改变。
第二数据分块模块50用于从待传输文件的剩余部分分割出一个或一个以上第二数据块。
在本实施方式中,第二数据分块模块50用于在分块确认模块40确认数据块包括的字节数 量之后,按照确定的字节数量划分数据块。第二数据分块模块50可以将文件未发送的部分全 部按照确定的字节数量划分数据块,也可以仅仅划分出下一个或一个以上将要发送的数据 块。即,下一个或一个以上将要发送的数据块的大小,由上一个或一个以上已发送的数据块 发送时的网络速度确定。第二数据块可以为第一数据块的下一个将要发送的数据块,也可以 为后续多个将要发送的数据块。在内容上,第二数据块的字节地址可以与第一数据块的字节 地址相连续。
第二发送模块60用于依照网络协议将所述一个或一个以上第二数据块发往预定地址。第 二发送模块60与第一发送模块20基本相同,不同之处在于,第二发送模块60将第二数据分块 模块50划分的一个或一个以上数据块发送至所述预定地址。
本实施方式中提供的文件传输装置100的各个模块,可以为能够实现模块的功能的电子 器件,也可以为记录在硬件上并通过硬件运行实现模块的功能的逻辑体。
请参阅图3,本实施方式还提供一种文件传输装置100的文件传输方法,文件传输方法包 括如下步骤。
步骤S10:从待传输文件分割出一个或一个以上第一数据块。
在本实施方式中,待传输文件为需要发送的文件。具体的,待传输文件可以为图片、文 字资料或影音文件等等,在此限于篇幅不再列举。在文件传输时,将待传输文件划分成一个 或多个块,每个块为一个数据块。从待传输文件中划分出第一数据块,第一数据块的数量可 以为一个或一个以上。进一步的,在分割第一数据块时,可以规定第一数据块包括的字节数 量。一个以上第一数据块可以为一个以上具有相同字节数量的数据块。
步骤S20:依照网络协议将所述一个或一个以上第一数据块发往预定地址。
在本实施方式中,网络协议可以为FTP网络协议或HTTP网络协议,预定地址为接收文件 的服务器或用户终端的网络地址。具体的,例如在场景为用户通过用户终端向服务器上传文 件时,预定地址为服务器的网络地址;再例如在场景用户通过用户终端从服务器下载文件时, 预定地址为用户终端的网络地址。若为首次发送数据块,则可以设定预定数值,即第一个或 一个以上数据块包括预定数值个字节,通过发出第一个或一个以上数据块便可以进一步计算 当前网速,从而可以根据当前网速调整数据块的大小。
步骤S30:根据所述一个或一个以上第一数据块发往预定地址所用的时间计算当前网速。
在本实施方式中,在计算当前网速时,可以为根据一个数据块发送至所述预定地址所用 的时间计算,也可以为根据一个以上数据块发送至所述预定地址总共所用的时间计算。
步骤S40:从待传输文件的剩余部分分割出一个或一个以上第二数据块,根据所述当前 网速确定所述第二数据块的字节数量。
步骤S40实现根据当前网速动态调整后续发送的数据块的大小,如此实现在网速较快时, 增大数据块包括的字节数量,实现充分利用网络速度,缩短文件的发送时间,在网络速度较 慢时,采用较小的数据块分块,使得用户能够清晰感知发送文件的进度条的更新,提供给用 户较好的使用体验。
在本实施方式中,可以根据当前网速调整下一个或一个以上待传输的数据块的大小,即 调整待传输的数据块所包括的字节数量。具体的,可以比较当前网速与预定网速,若当前网 速大于预定网速,将第二数据块的字节数量设置为第一预定字节数量;若当前网速小于预定 网速,设置第二数据块的字节数量为第二预定字节数量。第二预定字节数量小于第一预定字 节数量。例如当前网速为300K字节/秒,预定网速为250K字节/秒,第一预定字节数量为40K 字节,第二预定字节数量为25K字节,分块确认模块40比较得出当前网速大于预定网速,则 将数据块的字节数量确定为40K;在当前网速减小至200K字节/秒时,分块确认模块40将数据 块的字节数量确定为25K。
当然,还可以设置为比较当前网速与发送前一数据块时的网速,若当前网速大于发送前 一或前一个以上数据块时的网速,设置待传输的下一个或一个以上数据块的字节数量大于前 一或前一个以上数据块的字节数量。若当前网速小于发送前一数据块时的网速,设置待传输 的下一个或一个以上数据块的字节数量小于前一或前一个以上数据块的字节数量。在当前网 速大于发送前一数据块时的网速时,可以为下一个或一个以上待传输的数据块的字节数量相 较于前一数据块的字节数量增加预定数量的字节。在当前网速小于发送前一数据块时的网速 时,可以为下一个或一个以上待传输的数据块的字节数量相较于前一数据块的字节数量减小 预定数量的字节。具体的,例如当前网速为300K字节/秒,发送前一数据块时的网速为260K 字节/秒,前一数据块的字节数量为50K,预定数量为10K字节,则下一个或一个以上数据块 的字节数量为60K;例如当前网速为200K字节/秒,发送前一数据块时的网速为300K字节/秒, 前一数据块的字节数量为60K,预定数量为10K字节,则下一个或一个以上数据块的字节数 量为50K。
当然,在网速非常稳定的情况下,即网速恒定不发生改变时,可以维持数据块的字节数 量不发生改变。
在本实施方式中,在确定第二数据块的字节数量之后,进一步按照确定的字节数量划分 数据块。可以将待传输文件的剩余部分全部按照确定的字节数量划分数据块,也可以仅仅划 分出下一个或一个以上将要发送的数据块。即,下一个或一个以上将要发送的数据块的大小, 由上一个或一个以上已发送的数据块发送时的网络速度确定。第二数据块可以为第一数据块 的下一个将要发送的数据块,也可以为后续多个将要发送的数据块。在内容上,第二数据块 的字节地址可以与第一数据块的字节地址相连续。
步骤S50:依照网络协议将所述一个或一个以上第二数据块发往预定地址。
在本实施方式中,网络协议可以为FTP协议或Http协议。预定地址可以为服务器或用户 终端的网络地址。
本实施方式提供的文件传输装置和文件传输方法,能够根据当前网速动态调整文件发送 过程中的数据块的大小,在网络速度由慢变快时,能够增大传输的数据块包括的字节数量, 从而实现充分利用网络速度,缩短文件的传送时间;在网络速度由快变慢时,能够将数据块 包括的字节数量控制在适当的数量,使文件发送的进度条能够及时的更新,使用户能够及时 的了解文件的发送进度,提升了用户的操作体验。
请参阅图4,在一个实施方式中,文件传输装置100的速度计算模块30可以包括:记录模 块31、接收模块33和处理模块35。
所述记录模块31用于记录发出所述一个或一个以上第一数据块的时间T1
在本实施方式中,记录模块31可以为一个具有存储功能的存储器,优选地记录模块31为 缓存存储器,从而具有非常快速的数据记录和读取速度。发出时间T1可以为开始向预定地址 发送数据块的时间。记录模块31也可以将发出时间T1记录形成文件,记录每个数据块的发出 时间,便于后续查阅。
接收模块33用于接收从所述预定地址发回的响应信息,响应信息附带时间T2
响应信息能够代表预定地址接收数据块的状态,比如是否成功接收数据块,如此便可以 明确是否可以继续发送下一个或一个以上数据块,或者重新发送当前数据块。在已成功接收 的数据块不是所要传输文件的最后一个未传输数据块的情况下,响应信息也表明文件传输装 置100可以继续向服务器上传文件的下一个或一个以上数据块。具体的,例如响应信息中可 以包括状态码,当状态码为“206”时表明预定地址成功接收发送模块10发出的数据块,当 状态码为“200”时表明预定地址成功接收文件的全部数据块,当状态码为“300”时表明预 定地址接收数据块失败。
响应信息附带的时间T2可以为预定地址接收一个或一个以上第一数据块的时间戳,在预 定地址发出响应信息时,一并将时间戳发送给文件传输装置100。响应信息附带的时间T2还 可以为接收模块33接收到响应信息时的时间戳。时间T2可以记录在服务器或用户终端的缓存 存储器上,如此节省存储和调用时间,便于后续使用。当然,时间T2也可以与发出时间T1对 应存储,记录每个数据块的从发出至接收到响应信息的具体时间情况,便于后续查阅。
处理模块35用于计算当前网速V,V=M/(T2-T1)。
在本实施方式中,处理模块35可以为一段执行指定运算的处理芯片,也可以为一段程序 组成的逻辑体。公式V=M/(T2-T1)中,(T2-T1)可以表示文件传输装置100从发送一个数 据块至可以发送下一个数据块之间的时间间隔。在这个时间间隔内,文件文件传输装置100 共发出的字节数量为M,故当前网速V为M/(T2-T1)。对应于文件传输装置100发出一个以 上数据块时,具体的,该一个以上数据块会存在一个具体数量,(T2-T1)可以表示文件传输 装置100开始发出具体数量个数据块至下一次可以发出具体数量个数据块的时间间隔,该具 体数量个数据块包括的字节数量总数为M,故当前网速V为M/(T2-T1)。
请参阅图5,本实施方式中,文件传输方法的步骤S30:根据所述一个或一个以上第一数 据块发往预定地址所用的时间计算当前网速。还包括如下子步骤。
步骤S31:记录所述一个或一个以上第一数据块的发出时间T1
在本实施方式中,发出时间T1可以为开始向预定地址发送数据块的时间。发出时间T1 可以记录在服务器或用户终端的缓存存储器中,如此节省存储和调用时间,便于后续使用。 当然,发出时间T1也可以记录在服务器或用户终端的其它存储器上,也可以记录形成文件, 记录每个数据块的发出时间,便于后续查阅
步骤S33:接收从所述预定地址发回的响应信息,所述响应信息附带时间T2
在本实施方式中,响应信息能够代表预定地址接收数据块的状态,比如是否成功接收数 据块,如此便可以明确是否可以继续发送下一个或一个以上数据块,或者重新发送当前数据 块。在已成功接收的数据块不是所要传输文件的最后一个未传输数据块的情况下,响应信息 也表明可以继续向服务器上传文件的下一个或一个以上数据块。具体的,例如响应信息中可 以包括状态码,当状态码为“206”时表明预定地址成功接收发送模块10发出的数据块,当 状态码为“200”时表明预定地址成功接收文件的全部数据块,当状态码为“300”时表明预 定地址接收数据块失败。
响应信息附带的时间T2可以为预定地址接收一个或一个以上第一数据块的时间戳,在预 定地址发出响应信息时,一并将时间戳作为响应信息内容的一部分。响应信息附带的时间T2还可以为接收模块33接收到响应信息时的时间戳。时间T2可以记录在服务器或用户终端的缓 存存储器上,如此节省存储和调用时间,便于后续使用。当然,时间T2也可以与发出时间T1对应存储,记录每个数据块的从发出至接收到响应信息的具体时间情况,便于后续查阅。
步骤S35:计算当前网速V,V=M/(T2-T1),其中,M为所述一个或一个以上第一数据 块包括的字节数量。
在本实施方式中,公式V=M/(T2-T1)中,(T2-T1)可以表示从发送一个数据块至可以 发送下一个数据块之间的时间间隔。在这个时间间隔内,共发出的字节数量为M,故当前网 速V为M/(T2-T1)。对应于发出一个以上数据块时,具体的,该一个以上数据块会存在一个 具体数量,(T2-T1)可以表示开始发出具体数量个数据块至下一次可以发出具体数量个数据 块的时间间隔,该具体数量个数据块包括的字节数量总数为M,故当前网速V为M/(T2-T1)。
请参阅图6,在一个实施方式中,分块确认模块40包括计算模块41和比较模块43。计算 模块41和比较模块43实现确定数据块包括的字节数量。
计算模块41用于将当前网速与预定参数相乘得出动态字节数量。预定参数的取值小于等 于1。当前网速的单位为字节/秒,预定参数可以为视觉暂留时间,使得当前网速与预定参数 的乘积为字节数量。人的视觉存在视觉暂留,即当人眼视网膜受到光或图形刺激后,会产生 神经刺激并传递给大脑,在光或图形的作用结束后,在大脑中产生的视觉形象不会立即消失 而持续一定时间,这种残留的视觉为视觉暂留。当图像更新的速度小于或接近视觉暂留持续 的时间,人看到的图像是连续的或者接近连续的。文件传输装置100在发送文件过程中,会 通过进度条的方式向用户展现文件发送的进度,文件传输装置100在确定数据块的字节数量 时,引入预定参数,使得文件传输装置100在发送文件的过程中,若以动态字节数量作为数 据块的字节数量,则进度条会展示给用户一个较为连续的文件发送过程,而不会出现用户等 待较长时间进度条才更新一下进度的情况。在本实施方式中,当前网速的单位为字节/秒,预 定参数的单位为秒,则当前网速与预定参数的乘积即为按照当前网速经过预定参数的时间后 发送的字节数量,即发送动态字节数量个字节需要花费预定参数代表的时间。进一步的,预 定参数的取值范围为0<预定参数≤1,优选地,预定参数的取值范围为0<预定参数≤0.4, 此时进度条的更新连续性达到最佳。
比较模块43比较将动态字节数量与第三预定字节数量,二者中的大值作为数据块的字节 数量。比较模块43内部预设有第三预定字节数量,在文件传输装置100发送文件的第一个数 据块时,数据块可以包括第三预定字节数量个字节。
在文件传输装置100发送文件的过程中,动态字节数量会随着当前网速的变化而变化。 若当前网速较快时,则动态字节数量会较大,若动态字节数量大于第三预定字节数量时,则 采用动态字节数量作为数据块的字节数量,当当前网速进一步增大时,动态字节数量会进一 步增大,从而实现能够减小了文件传输装置100等待预定地址发回响应信息的时间,从而缩 短了文件的发送时间,充分利用了网络资源。在当前网速减小时,动态字节数量会相应减小, 实现展现文件发送进度的进度条能够及时的展示发送进度,提供给用户较佳的使用体验。
在一些情况下,当前网速非常慢,则此时若没有预定字节数量作比较,则动态字节数量 会非常小,如此会导致对文件的分块过多,如此会导致文件传输装置100过多的时间花费在 等待接受预定地址的响应信息,导致整个文件的发送时间过长。通过设置第三预定字节数量, 实现限定了数据块包括字节数量的下限值,即当当前网速较慢时,相应的动态字节数量的数 值也非常小,通过将动态字节数量与第三预定字节数量比较,若动态字节数量始终小于第三 预定字节数量,则将数据块包括的字节数量限定在第三预定字节数量。在本实施方式中,第 三预定字节数量的取值范围为5K字节至30K字节,优选地,第三预定字节数量为20K字节。
可以理解,文件传输装置100也可以不包括比较模块43,将动态字节数量作为第二数据 块的字节数量,如此能够实现数据块的字节数量能够根据当前网速的快慢而动态调整,实现 充分利用网络资源。
本实施方式提供的文件传输装置100通过计算模块41能够根据当前网速给出动态字节数 量,实现文件的数据块大小能够根据当前网速的变化而变化,在网络速度较快时,能够充分 利用网络速度,在网络速度降低时,也能够使进度条连续更新,提供给用户较佳的使用体验, 通过比较模块43在网速过低时,能够将数据块包括的字节维持在一个固定值,避免出现数据 块分块过多,出现文件发送时间过长的情况。
请参阅图7,在一个实施方式中,文件传输方法的步骤S40中:根据当前网速确定数据块 的字节数量。还包括如下子步骤。
步骤S41:将当前网速与预定参数相乘得出动态字节数量。
预定参数的取值小于等于1。当前网速的单位为字节/秒,预定参数可以为视觉暂留时间, 使得当前网速与预定参数的乘积为字节数量。文件传输装置100在发送文件过程中,会通过 进度条的方式向用户展现文件发送的进度,文件传输装置100在确定数据块的字节数量时, 引入预定参数,使得文件传输装置100在发送文件的过程中,若以动态字节数量作为数据块 的字节数量,则进度条会展示给用户一个较为连续的文件发送过程,而不会出现用户等待较 长时间进度条才更新一下进度的情况。
在本实施方式中,当前网速的单位为字节/秒,预定参数的单位为秒,则当前网速与预定 参数的乘积即为按照当前网速经过预定参数的时间后发送的字节数量,即发送动态字节数量 个字节需要花费预定参数代表的时间。进一步的,预定参数的取值范围为0<预定参数≤1, 优选地,预定参数的取值范围为0<预定参数≤0.4,此时进度条的更新连续性达到最佳。
步骤S43:比较动态字节数量与第三预定字节数量,二者中的大值作为数据块的字节数 量。
通过将动态字节数量与第三预定字节数量进行比较,实现限制数据块包括字节数量的最 小值,即当前网速较慢使动态字节数量较小时,数据块包括的字节数量会维持在第三预定字 节数量,如此避免了在动态字节数量过小时导致的文件分块过多的问题。在本实施方式中, 第三预定字节数量的取值范围为5K字节至30K字节,优选地,第三预定字节数量为20K字节。
在当前网络速度相对较快时,动态字节数量会维持在大于第三预定字节数量的状态,此 时数据块包括的字节数量会随着动态字节数量变化而变化。在当前网速增大时,动态字节数 量会增大,使得数据块包括的字节数量增大,相应的文件的分块数量减小,从而减少了文件 传输装置100等待响应信息的时间,缩短了文件的发送时间,充分利用了网络资源。在当前 网速减小时,动态字节数量会相应减小,实现展现文件发送进度的进度条能够及时的展示发 送进度,提供给用户较佳的使用体验。
可以理解,文件传输方法也可以不包括步骤S43,将动态字节数量作为第二数据块的字 节数量,如此能够实现数据块的字节数量能够根据当前网速的快慢而动态调整,实现充分利 用网络资源。
在一个具体的实施方式中,用户使用手机向服务器上传文件,文件共包括1000K字节, 手机连接有Wifi网络,在不使用Wifi网络时,手机可以使用2G网络上网,假设2G网络上网的 网速为10K。在Wifi网络下,发送模块10发送第一个数据块,默认第一数据块的大小为20K字 节,记录发出第一数据块的时间点T1,记录接收到预定地址的响应信息的时间为T2,时间差 T2-T1=0.06秒,则当前网速为V=20K÷0.06≈333K字节/秒,预定参数的取值为0.2,则动态 字节数量为66.6K字节,第三预定字节数量为20K,则将动态字节数量66.6K字节作为第二个 数据块包括的字节数量,假设在发送第二个数据块过程中,网速出现了变化,则从发出第二 个数据块至接收到响应信息共用0.16秒,则当前网速增大至416K字节/秒,对应的动态字节数 量增大至83.2K字节,此时第三个数据块包括的字节数量为83.2K字节,如此实现动态调整数 据块包括的字节数量,在网络速度增大时,能够充分利用网速。在一个个数据块发送的过程 中,网络速度变慢,从发送数据块至接收响应信息共用0.55秒,当前网速为151K字节/秒,相 应的动态字节数量为30.2K字节/秒,则下一个数据块包括的字节数量为30.2K字节,如此能够 实现数据块的大小匹配当前网速,使进度条能够相对连续的更新,提供用户较佳的使用体验。 此时,假设用户的手机离开Wifi网络,采用2G继续上传文件时,数据块发送用时5.5秒,进一 步当前网速为15K字节/秒,相应的动态字节数量为3K,显然动态字节数量小于第三预定字节 数量,下一个数据块包括的字节数量为第三预定字节数量,避免了动态字节数量过小使文件 分块过多,使文件传输装置100花费过多的时间等待接受响应信息。
请参阅图8,在一个实施方式中,分块确认模块40包括预定分块表45,以及查表模块47。
预定分块表45内具有网速以及与网速对应的字节数量。分块确认模块40通过在预定分块 表45中查找与当前网速相对应的字节数量,并将字节数量作为数据块的字节数量。
在预定分块表45中,可以针对每个网速均给出对应的字节数量,也可以针对一个网速范 围给出一个字节数量。针对每个网速均给出对应的字节数量,使得数据块包括的字节数量不 断的跟随当前网速变化,在网络速度不断增大时,数据块包括的字节数量也随着网速增大, 可以充分的利用网络资源。针对一个网速范围给出一个字节数量,即划分若干个网速范围, 每个网速范围对应一个字节数量,在当前网速较为稳定时,则数据块包括的字节数量会维持 在一个固定值,如此数据分块模块60便无需每次变更分块大小,可以将文件的全部内容完成 数据块划分。
在本实施方式中,预定分块表45可以为针对一个网速范围给出一个字节数量,请参见下 表1。
表1

网速(K字节/秒) 字节数量(字节) <10 5K 10~100 20K 100~150 50K 150~200 80K

查表模块47用于在预定分块表45中查找与当前网速对应的字节数量。字节数量会作为数 据分块模块60中数据块包括的字节数量。
预定分块表45可以为存储在存储器上的文件,查表模块47可以从存储器中读取预定分块 表45,对应当前网速查找对应的字节数量。预定分块表45和查表模块47也可以通过一个由程 序代码编撰的逻辑体实现。当然,在本申请技术精髓启示下,本领域技术人员还可能对上述 表1进行变更,或者通过其它技术手段实现网络与数据块对应表55和查表模块47实现的功能, 但只要其功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
在一个实施方式中,文件传输方法的步骤S40包括:根据当前网速查找预定分块表得到 数据块的字节数量,预定分块表对应网速记录有对应的字节数量。
文件传输方法通过在预定分块表中查找与当前网速对应字节数量,将字节数量作为数据 块包括的字节数量。在预定分块表中具有对应网速的字节数量,从而实现在网速变化时,可 以根据预定分块表中的字节数量对数据块包括的字节数量进行调整,从而实现动态改变发送 的数据块包括的字节数量。
在预定分块表中,可以针对每个网速均给出对应的字节数量,也可以针对一个网速范围 给出一个字节数量。针对每个网速均给出对应的字节数量,使得数据块包括的字节数量不断 的跟随当前网速变化,在网络速度不断增大时,数据块包括的字节数量也随着网速增大,可 以充分的利用网络资源。针对一个网速范围给出一个字节数量,即划分若干个网速范围,每 个网速范围对应一个字节数量,在当前网速较为稳定时,则数据块包括的字节数量会维持在 一个固定值。具体的,针对预定分块表举例可以为下表2。
表2
网速(K字节/秒) 字节数量(字节) <10 5K 10~100 20K 100~150 50K 150~200 80K

请参阅图9,在另一个实施方式中提供一种服务器系统400,服务器系统400包括业务服 务器410、缓存服务器420和文件服务器430。业务服务器410包括接收器411和合成器413。
接收器411用于在接收到文件传输装置发出的数据块后,将数据块提供给缓存服务器 420。文件传输装置可以向服务器系统400发送文件,比如文件传输装置将文件上传至服务器。 如前述实施方式介绍,在文件发送的过程中,会将文件分割成若干个数据块发出,接收器411 能够接收数据块。接收器411可以通过数据总线传输或socket(套接字)的方式将接收到的数 据块提供给缓存服务器420。
数据块中具有身份信息,即数据块所处的文件名称,数据块包括的字节范围以及文件的 总字节数。文件名称包括文件的“原始名称”和“发送时间”。原始名称为文件发送之前在 文件传输装置中的名称,在文件传输装置发送文件的时候会在原始名称后面加上发送时间形 成文件名称,如此避免服务器430中存在与“原始名称”相同的文件名称导致数据块混乱。 字节范围为数据块包括的文件内容中第一个字节和最后一个字节处于整个文件全部字节中 的排列序号,如此通过字节范围和总字节数便可以获知数据块包括的内容在整个文件中的位 置。
合成器413用于在接收到全部数据块之后将数据块合并成文件,将合成后的文件提供给 文件服务器430。文件传输装置会将文件的数据块分别发送给业务服务器410,接收器411不 断的接收数据块,并提供给缓存服务器420存储,直至接收到文件的最后一个数据块,即文 件完成发送。合成器413从缓存服务器420获取数据块,按照数据块中的字节范围信息,将数 据块合成形成文件。
缓存服务器420用于将数据块存储在缓存存储器。缓存存储器的数量可以为一个或几个, 当然也可以为由多个缓存存储器组成的阵列。每个缓存存储器可以为半导体存储器。数据块 可以仅仅存在一个缓存存储器中,也可以分散存储在多个缓存存储器中。在本实施方式中, 缓存存储器为由多个缓存存储器组成的阵列,数据块分散存储在缓存存储器中。
在缓存服务器420中对应文件设置有存储索引,即存储索引中记录有每个数据块的存储 地址,在将数据块提供给合成器413时,会依照存储索引中的存储地址获取数据块,从而避 免数据块存储出现混乱。
文件服务器430用于保存合成器413合成的文件。文件服务器430用于将文件存储在存储 器中,存储器可以为磁盘存储器。在合成器413将数据块合成文件之后,将文件提供给文件 服务器430,文件服务器430接收文件之后,将文件存储在存储器中。
现有技术中,文件传输装置将文件发送给服务器,服务器接收到数据块后,直接将数据 块存储在磁盘存储器中,在数据块全部传输完成之后,将数据块从磁盘存储器中读取出来合 并,由于磁盘存储器中的数据寻址读取速度较慢,使得现有技术中图片的合成过程较慢。比 如,一个用户A上传了一张照片,服务器需要将磁盘存储器中的数据块逐一读取合成照片, 此过程需要较长时间,则用户B需要等待较长时间才能够访问到照片。显然,用户希望上传 之后的文件,能够尽快被其它的用户看到,而现有技术不符合使用要求。本申请中,通过将 数据块缓存在缓存服务器中,由于缓存服务器对数据的读取速度远远大于磁盘存储器,从而 缩短了整个图片的合成时间,给用户带来了较佳的使用体验。
请参阅图10,为服务器系统400的工作方法。接收器411接收到文件传输装置发出的数据 块,将数据块提供给缓存服务器420,缓存服务器420将数据块存储在缓存存储器中,并在存 储索引中记录数据块在缓存存储器中的存储地址。接收器411接收到文件传输装置发送的最 后一个数据块之后,缓存服务器420依照存储索引中的记录,从缓存存储器中读取数据块提 供给合成器413,合成器413将数据块合并形成文件传输装置发出的文件,并将文件提供给文 件服务器430,文件服务器430将文件保存。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计 算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、 可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分 布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。 一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、 数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过 通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包 括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施方式描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化 而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

文件传输方法和装置及服务器系统.pdf_第1页
第1页 / 共21页
文件传输方法和装置及服务器系统.pdf_第2页
第2页 / 共21页
文件传输方法和装置及服务器系统.pdf_第3页
第3页 / 共21页
点击查看更多>>
资源描述

《文件传输方法和装置及服务器系统.pdf》由会员分享,可在线阅读,更多相关《文件传输方法和装置及服务器系统.pdf(21页珍藏版)》请在专利查询网上搜索。

本申请实施方式公开了文件传输方法和装置及服务器。从待传输文件分割出一个或一个以上第一数据块;依照网络协议将所述一个或一个以上第一数据块发往预定地址;根据所述一个或一个以上第一数据块发往所述预定地址所用的时间计算当前网速;从待传输文件的剩余部分分割出一个或一个以上第二数据块,根据所述当前网速确定所述第二数据块的字节数量;依照网络协议将所述一个或一个以上第二数据块发往所述预定地址。利用本申请各实施方式。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1