[发明专利]文件传输方法和装置及服务器系统在审
申请号: | 201410014644.6 | 申请日: | 2014-01-13 |
公开(公告)号: | CN104780092A | 公开(公告)日: | 2015-07-15 |
发明(设计)人: | 陈晓峰;毛怀源 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58;H04L29/06;H04L12/861 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 党晓林 |
地址: | 英属开曼*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 文件传输 方法 装置 服务器 系统 | ||
技术领域
本申请涉及网络通信技术领域,特别涉及一种文件传输方法和装置及服务器系统。
背景技术
在网络通信技术领域中,服务器和用户终端之间经常进行文件的上传和下载。比如,用户通过手机或电脑将图片、音频文件、视频文件或文本资料上传至服务器,或者通过手机或电脑下载存储在服务器中的图片、音频文件、视频文件或文本资料。
在用户终端和服务器之间上传或下载文件时,会利用断点续传技术。现有技术中,断点续传技术会将文件划分成若干固定大小的数据块。文件传输过程中,可以有多个线程,每个线程上传或下载一个数据块,当一个文件的全部数据块上传或下载结束后,重新再合成形成文件。在文件进行上传或下载的过程中,可能因网络连接问题而出现传输失败的情况。比如在传输过程中网络连接中断,这会导致正在传输的数据块传输失败,在网络恢复之后,会从网络中断时传输失败的数据块处继续传输,而无需将文件的全部数据块重新再次传输。
请参阅图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上网,网络速度往往相差较大,使得难以确定合适的数据块大小能够兼顾两者的需求。
发明内容
本申请实施方式的目的是提供一种文件传输方法和装置及服务器系统,以使得传输过程与实际网络速度尽量匹配。
为解决上述技术问题,本申请提供一种文件传输方法,包括:
从待传输文件分割出一个或一个以上第一数据块;
依照网络协议将所述一个或一个以上第一数据块发往预定地址;
根据所述一个或一个以上第一数据块发往所述预定地址所用的时间计算当前网速;
从待传输文件的剩余部分分割出一个或一个以上第二数据块,根据所述当前网速确定所述第二数据块的字节数量;
依照网络协议将所述一个或一个以上第二数据块发往所述预定地址。
本申请还提供一种文件传输装置,包括:
第一数据分块模块,用于从待传输文件分割出一个或一个以上第一数据块;
第一发送模块,用于依照网络协议将所述一个或一个以上第一数据块发往预定地址;
速度计算模块,用于根据所述一个或一个以上第一数据块发往所述预定地址所用的时间计算当前网速;
分块确认模块,用于根据所述当前网速确定第二数据块的字节数量;
第二数据分块模块,用于从待传输文件的剩余部分分割出一个或一个以上第二数据块;
第二发送模块,用于依照网络协议将所述一个或一个以上第二数据块发往所述预定地址。
本申请还提供一种服务器系统,包括:
第一数据分块模块,用于从待传输文件分割出一个或一个以上第一数据块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410014644.6/2.html,转载请声明来源钻瓜专利网。