文件服务器、终端及其文件分包传输方法
【技术领域】
[0001]本发明涉及通信技术领域,具体而言,本发明涉及一种文件服务器、终端及其文件分包传输方法。
【背景技术】
[0002]随着科技的进步和社会的发展,互联网和移动互联网等网络已经得到广泛的普及。用户通常通过电脑、智能手机和平板电脑等终端接入网络,获取资讯、网络购物和信息交互等等。
[0003]终端在信息交互(例如即时通讯)的过程中,通常需要将图片文件、视频文件等文件向服务器上传,再由服务器进行后续传输。
[0004]现有的一种文件传输方法包括:发送端将待传输的文件划分成多个分片文件;依照分片顺序逐个将各分片文件向接收端传输;监控每个分片文件是否传输成功,若传输成功则继续对下一个分片文件进行传输,若传输失败则对该分片文件进行重新传输。
[0005]然而,本发明的发明人发现,上述文件传输的过程耗费的时间较长,文件传输速度较慢,传输效率低下;并且该文件传输的过程占用网络带宽时间较长,影响了相关网络的传输效率。
[0006]目前,另一种文件传输方法包括:发送端将待传输的文件划分成多个分片文件,与接收端建立多个线程,将多个分片文件分别通过多个线程并行发送给接收端。
[0007]然而,本发明的发明人发现,上述并行发送分片文件的过程中,需要占用大量的网络带宽和缓存空间等系统资源,降低了相关网络中其它传输任务的传输效率。
[0008]综上,现有的文件传输方法存在传输效率较低、或者占用带宽和系统资源较多的缺陷。
[0009]因此,有必要提供一种文件服务器、终端及其文件分包传输方法,以占用较小的网络带宽和系统资源的情况下,提升文件传输效率。
【发明内容】
[0010]本发明针对现有的文件传输方式的缺点,提出一种文件服务器、终端及其文件分包传输方法,用以解决现有技术存在传输速度较慢、或者占用带宽和系统资源较多的问题。[0011 ]本发明的实施例根据一个方面,提供了一种文件分包传输方法,包括:
[0012]源终端根据文件划分策略确定出文件的待划分片段的数目后,将所述文件的文件名、数目信息上传至文件服务器;
[0013]所述源终端根据所述文件划分策略对所述文件进行划分,对划分出的片段依次分配片段序号;并
[0014]对于每个片段,将该片段及其片段序号封装在一个分包文件中上传至文件服务器;之后,向所述文件服务器发送文件接收状况查询请求;
[0015]所述源终端在接收到所述文件服务器返回的重发信息后,根据所述重发信息中的片段序号,重新发送相应的分包文件;
[0016]其中,所述重发信息是所述文件服务器接收到所述文件接收状况查询请求后,根据其中携带的文件名,以及之前接收的所述文件的各分包文件中携带的片段序号,以及所述数目信息确定的。
[0017]本发明的实施例根据另一个方面,还提供了一种文件分包传输方法,包括:
[0018]文件服务器接收源终端上传的文件的文件名、和文件片段的数目信息并对应存储;
[0019]所述文件服务器接收所述源终端上传的分包文件后,将所述分包文件与所述文件名对应存储;
[0020]所述文件服务器接收到所述源终端发送的文件接收状况查询请求后,根据其中携带的文件名,以及之前接收的所述文件的各分包文件中携带的片段序号,以及所述数目信息,确定出未接收到的分包文件的片段序号;将确定出的片段序号携带于重发信息中向所述源终端返回。
[0021]本发明的实施例根据另一个方面,还提供了一种终端,包括:
[0022]文件信息上传模块,用于根据文件划分策略确定出文件的待划分片段的数目后,将所述文件的文件名、数目信息上传至文件服务器;
[0023]分包文件上传模块,用于根据所述文件划分策略对所述文件进行划分,对划分出的片段依次分配片段序号;并对于每个片段,将该片段及其片段序号封装在一个分包文件中上传至文件服务器;之后,发送上传结束通知;
[0024]分包文件重传模块,用于接收到上传结束通知后,向所述文件服务器发送文件接收状况查询请求;以及在接收到返回的重发信息后,根据所述重发信息中的片段序号,重新发送相应的分包文件;
[0025]其中,所述重发信息是所述文件服务器接收到所述文件接收状况查询请求后,根据其中携带的文件名,以及之前接收的所述文件的各分包文件中携带的片段序号,以及所述数目信息确定的。
[0026]本发明的实施例根据另一个方面,还提供了一种文件服务器,包括:
[0027]文件信息存储模块,用于接收源终端上传的文件的文件名、和文件片段的数目信息并对应存储;
[0028]分包文件接收模块,用于接收所述源终端上传的分包文件后,将所述分包文件与所述文件名对应存储;
[0029]信息反馈模块,用于接收到所述源终端发送的文件接收状况查询请求后,根据其中携带的文件名,以及之前所述分包文件接收模块接收的所述文件的各分包文件中携带的片段序号,以及所述文件信息存储模块接收的数目信息,确定出未接收到的分包文件的片段序号;将确定出的片段序号携带于重发信息中向所述源终端返回。
[0030]本发明的实施例中,源终端将文件待划分的片段的数目信息、以及该文件的所有分包文件都上传后,由文件服务器根据接收的数目信息和各分包文件中的片段序号,一次性确定出重发信息并返回;源终端可以根据重发信息重发分包文件。与现有方法中每传输一个分片文件即检查是否传输成功以生成重发信息相比,文件服务器确定重发信息的次数从多次缩减为一次,可以节省传输整个文件所花费的时间,从而提升文件传输的速度和效率。
[0031]而且,本发明实施例中,源终端封装的分包文件可以通过运行在单个线程中的会话上传至文件服务器,与现有技术中将多个分片文件分别通过多个线程进行并行上传相比,可以节省网络带宽,可以节省源终端和文件服务器中的缓存空间等资源。
[0032]因此,本发明实施例可在占用较小的网络带宽和系统资源的情况下,提升文件传输效率。
[0033]本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
[0034]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0035]图1为本发明实施例的文件分包传输系统的架构示意图;
[0036]图2a和图2b都为本发明实施例的文件分包传输方法的流程示意图;
[0037]图3为本发明实施例的终端的内部结构的框架示意图;
[0038]图4为本发明实施例的文件服务器的内部结构的框架示意图。
【具体实施方式】
[0039]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0040]本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“親接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
[0041]本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
[0042]本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器
的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communicat1ns Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Posit1ning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
[0043]本发明的实施例中,源终端将待传输的文件划分成多个片段,为片段依次分配片段序号;对于每个片段,将该片段及其片段序号封装在一个分包文件中上传至文件服务器。文件服务器并不在上传过程中确定重发信息,而是在源终端将所有分包文件都上传后,根据之前接收的片段的数目信息和各分包文件中的片段序号,一次性确定出重发信息并返回至源终端。与现有方法中每传输一个分片文件即检查是否传输成功以生成重发信息相比,文件服务器确定重发信息的次数从多次缩减为一次;由于文件服务器的处理能力较强,检查多个分包文件并生成重发信息所需要花费时间,与检查一个分片文件并生成重发信息的时间相差无几;因此,本发明实施例可以节省传输整个文件所花费的时间,从而提升文件传输的效率。
[0044]而且,本发明实施例中,源终端封装的分包文件可以通过运行在单个线程中的会话上传至文件服务器的,与现有技术中将多个分片文件分别通过多个线程进行并行上传相比,可以节省网络带宽,可以节省源终端和文件服务器中的缓存空间等资源。
[0045]因此,本发明实施例可在占用较小的网络带宽和系统资源的情况下,提升文件传输效率。
[0046]下面结合附图具体介绍本发明实施例的技术方案。
[0047]本发明实施例提供的文件分包传输系统,架构示意图如图1所示,包括:源终端101和文件服务器102。
[0048]其中,源终端101可以是多个,通过局域网接入网络,也可以通过移动通信网络接入网络,具体为台式电脑、智能手机或平板电脑等设备。
[0049]例如,源终端101可以通过WiFi (Wireless Fidelity,无线保真)局域网接入互联网。
[0050]再如,源终端10 1 可以通过3G ( 3r d-Genera t i on wireless telephonetechnology,第三代手机通信技术)、LTE(Long Term Evolut1n,长期演进)等移动通信网络接入互联网。
[0051]文件服务器102可以以有线的方式接入网络。例如,文件服务器102通过光纤接入互联网的广域网或者主干网。
[0052]文件服务器102主要用于存储文件,供终端上传或者下载文件等;具体功能将在后续介绍,此处不再赘述。
[0053]文件服务器102接收多个源终端101上传的文件并存储在本服务器中。文件服务器102中的每个文件以分包文件的形式进行存储,例如一个文件的所有分包文件都与该文件的文件名对应存储。文件服务器102对于每个文件,可以为该文件生成文件序号后,将生成的文件序号与该文件的文件名对应存储。
[0054]进一步,如图1所示,本发明实施例的文件分包传输系统,还可以包括:目标终端
103。
[0055]目标终端103可以是多个,通过局域网接入网络,也可以通过移动通信网络接入网络,具体为台式电脑、智能手机或平板电脑等设备。
[0056]进一步,如图1所示,本发明实施例的文件分包传输系统,还可以包括:信令服务器
104。
[0057]较佳地,信令服务器104可以与文件服务器102设置在同一文件传输服务器平台中。
[0058]信令服务器104可以以有线的方式接入网络。例如,信令服务器104通过光纤接入互联网的广域网或者主干网。
[0059]信令服务器104主要用于建立源终端101与目标终端103之间的会话,并记录会话,提供查询会话的服务;具体功能将在后续介绍,此处不再赘述。
[0060]本发明实施例的文件分包传输系统支持多个源终端101向文件服务器102上传文件。其中,每个源终端101独立地向文件服务器102上传文件。
[0061]源终端101接收用户输入的针对某一文件的传输指令后,将该文件确认为待传输的文件,并与文件服务器102建立链接。其中,该链接可以是长链接或者短链接。传输指令中可以包括:待传输的文件的标识;较佳地,传输指令还可以包括目标终端103的标识。
[0062]例如,源终端101在屏幕上显示交互界面,通过该交互界面接收到用户输入的作为文件接收方的目标终端102的标识,并且通过该交互界面接收到用户针对文件的图标的点击事件,确定该文件为待传输的文件,并确定接收到用户针对该文件的传输指令。
[0063]源终端101与文件服务器102建立链接后,可以依照如图2a所示的方法流程,将文件分包传输至文件服务器102,包括如下步骤:
[0064]S201:源终端101根据文件划分策略确定出文件的待划分片段的数目后,将该文件的文件名、以及文件片段的数目信息上传至文件服务器102。
[0065]具体地,源终端101对于待传输的文件,根据文件划分策略确定出该文件待划分片段的数目。文件划分策略可以包括:单个片段所占存储空间的数值。
[0066]较佳地,源终端101可以根据单个片段所占存储空间的固定数值,确定出文件的待划分的片段的数目;其中一个片段所占存储空间的数值可以小于该固定数值。
[0067]例如,源终端101对于所占存储空间为9994字节的待传输的文件,且单个片段所占存储空间的固定数值为1000字节,可以确定出该文件的待划分的片段的数目为10;该10个片段的前9个片段中每个片段所占存储空间的数值都是1000字节,最后一个片段所占存储空间的数值为994字节。
[0068]源终端101对于待传输的文件,将确定出的该文件待划分片段的数目信息、以及该文件的文件名,向文件服务器102上传。
[0069]S202:文件服务器102接收源终端101上传的文件的文件名、和文件片段的数目信息并对应存储。
[0070]S203:源终端101根据文件划分策略对文件进行划分,对划分出的片段依次分配片段序号;并对于每个片段,将该片段及其片段序号封装在一个分包文件中上传至文件服务器 102。
[0071]具体地,源终端101根据文件划分策略中单个片段所占存储空间的数值,对待传输的文件的内容进行划分,划分出多个片段。
[0072]源终端101对划分出的多个片段,根据划分顺序依次分配片段序号,并记录片段与片段序号之间的对应关系。
[0073]源终端101对于待传输的文件的一个片段,将该片段及其片段序号封装在一个分包文件中向文件服务器102上传;之后,将下一个片段及该片段的片段序号封装在下一个分包文件中向文件服务器102上传;直到将待传输的文件所有片段对应的各分包文件都向文件服务器102上传完毕。
[0074]较佳地,源终端101与文件服务器102之间建立单个会话,由一个线程处理,为该会话创建缓存空间;源终端101对于待传输的文件的所有分包文件,将一个分包文件缓存到该会话的缓存空间中并通过该会话向文件服务器102上传后,对下一个分包文件进行缓存并上传,直到所有分包文件上传完毕。
[0075]本
步骤的上传过程中,源终端101除了为划分文件的片段设置对应的缓存空间之夕卜,无需专门划分出可以容纳多个分包文件的缓存空间,基本上划分出可以容纳一个分包文件的缓存空间,各分包文件先后都临时缓存在该缓存空间中,在后封装的分包文件覆盖掉在前封装的分包文件,可以满足缓存分包文件的需要,从而节省了终端的存储空间。
[0076]较佳地,当单个片段所占存储空间的数值为固定值时,除了待传输的文件的最后一个片段之外,封装其他片段的分包文件所占存储空间的数值也是固定的。
[0077]较佳地,源终端101根据文件划分策略中单个片段所占存储空间的数值,对待传输的文件的内容进行划分;每划分出一个片段,就为该片段分配片段序号后,将该片段及其片段序号封装在一个分包文件中向文件服务器102上传;直到将将待传输的文件所有片段都向文件服务器102上传完毕。可见,本步骤的上传过程中,每次仅划分出一个片段,可以进一步节省为划分文件的片段而设置的缓存空间。
[0078]S204:文件服务器102接收源终端101上传的分包文件后,将分包文件与文件名对应存储。
[0079]具体地,文件服务器102接收源终端101逐个上传的分包文件。文件服务器102将每个接收的分包文件,都与上述步骤S202中接收到的文件名对应存储。
[0080]较佳地,文件服务器102为与源终端101之间的会话创建缓存空间;对于接收到的源终端101上传的一个分包文件,将该分包文件缓存到该会话的缓存空间中并复制、将复制的分包文件与之前接收的文件名对应存储后,对接收的下一个分包文件进行缓存并复制、对应存储。
[0081]本步骤中,文件服务器102无需专门划分出可以容纳多个分包文件的缓存空间,基本上划分出可以容纳一个分包文件的缓存空间,各分包文件先后都临时缓存在该缓存空间中,在后接收的分包文件覆盖掉在前接收的分包文件,可以满足缓存分包文件的需要,从而节省了文件服务器102的存储空间。
[0082]S205:源终端101将文件所有的分包文件都上传之后,向文件服务器102发送文件接收状况查询请求。
[0083]具体地,源终端101将待传输的文件所有的分包文件都向文件服务器102上传之后,将该文件的文件名携带于文件接收状况查询请求中,向文件服务器102发送。
[0084]S206:文件服务器102接收到源终端101发送的文件接收状况查询请求后,根据其中携带的文件名,以及之前接收的文件的各分包文件中携带的片段序号,以及文件片段的数目信息,确定是否接收到文件的所有分包文件;若是,则执行步骤S207;若否,则执行步骤S209o
[0085]具体地,文件服务器102接收到源终端101发送的文件接收状况查询请求后,从中解析出文件的文件名。
[0086]文件服务器102查找出与解析出的文件名对应存储的所有分包文件,解析出各分包文件中携带的片段序号。
[0087]文件服务器102将解析出的各分包文件中的片段序号,与上述步骤S202中接收到的文件片段的数目信息进行匹配;根据匹配结果,确定是否接收到文件的所有分包文件;若否,则执行步骤S207;若是,则执行步骤S209。
[0088]例如,若文件服务器102解析出各分包文件中的片段序号包括1-10和31-100,而之前接收到的数目信息表示文件片段的数目为100,显然各分包文件中的片段序号与片段的数目信息不匹配,执行步骤S207。
[0089]可以理解,文件服务器102若确定出接收到文件的所有分包文件时,即可认为文件服务器102已接收到整个文件。
[0090]S207:文件服务器102确定出未接收到的分包文件的片段序号,将确定出的片段序号携带于重发信息中向源终端101返回。
[0091]具体地,文件服务器102根据上述步骤S206中确定出的各分包文件中携带的片段序号、以及上述步骤S202中接收到的文件片段的数目信息,确定出未接收到的分包文件的片段序号。
[0092]例如,若文件服务器102解析出各分包文件中的片段序号包括1-10和31-100,而之前接收到的数目信息表示文件片段的数目为100,文件服务器102可以确定出未接收到的分包文件的片段序号为11-30。
[0093]文件服务器102确定出未接收到的分包文件的片段序号后,将确定出的片段序号都携带于重发信息中向发送文件接收状况查询请求的源终端101返回。
[0094]S208:源终端101在接收到文件服务器102返回的重发信息后,根据该重发信息中的片段序号,重新发送相应的分包文件。
[0095]具体地,源终端101在接收到文件服务器102返回的重发信息后,从该重发信息解析出至少一个片段序号。
[0096]源终端101对于解析出的每一个片段序号,重新从待传输的文件的内容中划分出该片段序号对应的片段,将该片段和该片段序号封装到一个分包文件中向文件服务器102上传;直到重发信息中的片段序号对应的片段的分包文件都向文件服务器102上传完毕。
[0097]较佳地,源终端101在将重发信息中片段序号对应的分包文件都上传后,向文件服务器102重新发送携带文件名的文件接收状况查询请求。
[0098]源终端101若接收到文件服务器102再次返回的重发信息,则根据再次返回的重发信息,发送相应的分包文件;直到接收到文件服务器102返回的接收确认信息后,停止发送文件接收状况查询请求。
[0099]其中,再次返回的重发信息,是文件服务器102根据重新接收到的文件接收状况查询请求中的文件名、接收到的源终端101重新发送的和之前接收到的各分包文件中的片段序号、以及之前接收到的片段的数目信息,确定出未接收到文件的所有分包文件后,生成的。
[0100]S209:文件服务器102为接收的分包文件所属的文件生成文件序号,并向源终端101返回携带该文件序号的接收确认信息。
[0101]文件服务器102在上述步骤S206中确定出接收到文件的所有分包文件后,在本步骤中为接收的分包文件所属的文件生成文件序号;将生成的文件序号与该文件的名称对应存储。
[0102]文件服务器102将生成的文件序号携带在接收确认信息中,向发送文件接收状况查询请求的源终端101返回。
[0103]可以理解,文件服务器102确定出接收到文件的所有分包文件时,即可认为文件服务器102已接收到整个文件。
[0104]较佳地,文件服务器102向源终端101返回接收确认信息后,断开与源终端101的链接。
[0105]在实际应用中,如上述图2a所示的方法流程中,可能部分步骤在执行时间上存在交叠。
[0106]例如,在某一时段,当步骤S204中文件服务器102处于逐一接收分包文件的状态时,步骤S203中源终端101仍处于逐一上传分包文件的状态。
[0107]再如,由于网络延迟,当步骤S205中源终端101发送携带文件名的文件接收状态查询请求时,步骤S204中的文件服务器102还未接收到该文件接收状态查询请求、仍处于逐一接收分包文件的状态。
[0108]更优的,基于上述步骤S209中的接收确认信息,源终端101可以向目标终端103传输文件,包括:源终端101在接收到文件服务器102返回的接收确认信息后,将接收确认信息中的文件序号携带于下载指示信息中向目标终端103发送;目标终端103根据下载指示信息中的文件序号从文件服务器102获取对应文件的各分包文件,并根据各分包文件中的片段序号,依次拼接片段得到文件。
[0109]对于本发明实施例的上述包括信令服务器102的文件分包传输系统,在该系统中的源终端101向目标终端103传输文件之前,源终端101和目标终端103都可以通过注册等方式将各自的标识存储在信令服务器104中。
[0110]源终端101和目标终端103接入网络后,都登录至信令服务器104。例如,源终端101和目标终端103通过即时通信应用程序接入网络后,都登录至信令服务器104。
[0111]信令服务器104对应记录源终端101的标识及其当前的网络地址,并对应记录目标终端103的标识及其当前的网络地址。
[0112]下面基于上述包括信令服务器102的文件分包传输系统,具体介绍源终端10
1向目标终端103传输文件的方法,该方法的流程示意图如图2b所示,包括如下步骤:
[0113]S210:源终端101在接收到文件服务器102返回的接收确认信息后,将接收确认信息中的文件序号携带于下载指示信息中向信令服务器104发送。
[0114]具体地,源终端101在接收到文件服务器102返回的接收确认信息后,从接收确认信息中解析出文件序号,并且停止向文件服务器102发送文件接收状况查询请求。
[0115]源终端101将用户输入的传输指令中的目标终端103的标识、以及从接收确认信息中解析出的文件序号,都携带于下载指示信息中向信令服务器104发送。
[0116]较佳地,源终端101将待传输的文件的文件名,以及该文件占用存储空间大小等属性信息,与目标终端103的标识、以及该文件的文件序号,一并都携带于下载指示信息中向信令服务器104发送。
[0117]S211:信令服务器104将源终端101发送的下载指示信息向目标终端103转发。
[0118]具体地,信令服务器104接收到源终端101发送的下载指示信息后,从中解析出待传输的文件的文件序号、目标终端103的标识;确定出解析出的目标终端103的标识所对应的目标终端103当前的网络地址;根据确定出的目标终端103当前的网络地址,将下载指示信息向目标终端103转发。
[0119]S212:目标终端103根据接收到的下载指示信息中的文件序号,向文件服务器102发送文件下载请求。
[0120]具体地,目标终端103接收到信令服务器104转发的下载指示信息后,从中解析出文件序号,将解析出的文件序号携带在文件下载请求中向文件服务器102发送。
[0121]较佳地,目标终端103从下载指示信息中解析出文件的文件序号,并且解析出该文件的文件名和占用存储空间大小等属性信息。
[0122]S213:文件服务器102在接收到目标终端103根据下载指示信息发送的文件下载请求后,根据文件下载请求中携带的文件序号,将相应的文件的所有分包文件向目标终端103返回。
[0123]具体地,文件服务器102接收到目标终端103发送的文件下载请求后,从文件下载请求中解析出文件序号;查找出与解析出的文件序号对应存储的文件名,进而查找出与该文件名对应存储的所有分包文件,向发送文件下载请求的目标终端103返回。
[0124]S214:目标终端103接收到文件服务器102返回的各分包文件后,根据各分包文件中的片段序号,依次拼接片段得到文件。
[0125]具体地,目标终端103接收到文件服务器102返回的各分包文件后,解析出各分包文件中的片段序号和片段;根据片段序号依次拼接片段得到文件的内容,进而生成文件。
[0126]较佳地,目标终端103对于上述步骤S212中接收到的下载指示信息中携带的属性信息进行展示;并且目标终端103根据该属性信息,创建一个同属性的文件;将根据片段序号依次拼接片段得到文件的内容,保存到创建的文件中后,展示该创建的文件。
[0127]本领域技术人员可以理解,在实际应用中,源终端101也可以具有从文件服务器102下载文件的功能;目标终端103也可以具有向文件服务器102上传文件、并向目标终端103发送下载指示信息的功能。也就是说,源终端101实际上可以与目标终端103具有相同的功能、相同的内部结构。
[0128]基于上述文件分包传输方法,本发明实施例中的终端(以源终端101为例)的内部结构的框架示意图如图3所示,包括:文件信息上传模块301、分包文件上传模块302和分包文件重传模块303。
[0129]其中,文件信息上传模块301用于根据文件划分策略确定出文件的待划分片段的数目后,将文件的文件名、数目信息上传至文件服务器102。
[0130]分包文件上传模块302用于根据文件划分策略对文件进行划分,对划分出的片段依次分配片段序号;并对于每个片段,将该片段及其片段序号封装在一个分包文件中上传至文件服务器102;之后,发送上传结束通知。
[0131]分包文件重传模块303用于接收到上传结束通知后,向文件服务器102发送文件接收状况查询请求;以及在接收到返回的重发信息后,根据重发信息中的片段序号,重新发送相应的分包文件。
[0132]重发信息是文件服务器102接收到文件接收状况查询请求后,根据其中携带的文件名,以及之前接收的文件的各分包文件中携带的片段序号,以及数目信息确定的。
[0133]更优的,如图3所示,本发明实施例中的终端中还包括:文件下载指示模块304。
[0134]分包文件重传模块303还用于在接收到文件服务器102返回的接收确认信息后,向文件下载指示模块304发送下载指示通知。
[0135]文件下载指示模块304根据文件下载指示模块304发送的下载指示通知,将接收确认信息中的文件序号携带于下载指示信息中向目标终端103发送。
[0136]其中,文件序号为文件服务器102确定接收到文件的所有分包文件后,为该文件生成的。
[0137]更优的,如图3所示,本发明实施例中的终端中还包括:文件下载模块305。
[0138]文件下载模块305用于在接收到源自另一个终端的下载指示信息后,根据其中的文件序号从文件服务器102获取对应文件的各分包文件,并根据各分包文件中的片段序号,依次拼接片段得到文件。
[0139]上述文件信息上传模块301、分包文件上传模块302、分包文件重传模块303、文件下载指示模块304和文件下载模块305功能的实现方法,可以参考上述图2a和图2b所示的流程步骤的具体内容,此处不再赘述。
[0140]基于上述文件分包传输方法,本发明实施例中的文件服务器102的内部结构的框架示意图如图4所示,包括:文件信息存储模块401、分包文件接收模块402和信息反馈模块403。
[0141]其中,文件信息存储模块401用于接收源终端101上传的文件的文件名、和文件片段的数目信息并对应存储。
[0142]分包文件接收模块402用于接收源终端101上传的分包文件后,将接收到的所有分包文件与文件名对应存储。
[0143]信息反馈模块403用于接收到源终端101发送的文件接收状况查询请求后,根据其中携带的文件名,以及之前分包文件接收模块402接收的文件的各分包文件中携带的片段序号,以及文件信息存储模块401接收的数目信息,确定出未接收到的分包文件的片段序号;将确定出的片段序号携带于重发信息中向源终端101返回。
[0144]较佳地,信息反馈模块403还用于若根据分包文件接收模块402接收的文件的各分包文件中携带的片段序号,以及文件信息存储模块401接收的数目信息,确定接收到文件的所有分包文件后,为该文件生成文件序号,并向源终端101返回携带文件序号的接收确认信息。
[0145]更优的,如图4所示,本发明实施例中的文件服务器102中还包括:分包文件下发模块404。
[0146]分包文件下发模块404用于在接收到目标终端103根据下载指示信息发送的文件下载请求后,根据文件下载请求中携带的文件序号,将相应的文件的所有分包文件向该目标终端返回;其中,下载指示信息是源终端101向该目标终端发送的。
[0147]上述文件信息存储模块401、分包文件接收模块402、信息反馈模块403和分包文件下发模块404功能的实现方法,可以参考上述如图2a和图2b所示的流程步骤的具体内容,此处不再赘述。
[0148]本发明的实施例中,源终端将文件待划分的片段的数目信息、以及该文件的所有分包文件都上传后,由文件服务器根据接收的数目信息和各分包文件中的片段序号,一次性确定出重发信息并返回;源终端可以根据重发信息重发分包文件。与现有方法中每传输一个分片文件即检查是否传输成功以生成重发信息相比,文件服务器确定重发信息的次数从多次缩减为一次,可以节省传输整个文件所花费的时间,从而提升文件传输的效率。
[0149]而且,本发明实施例中,源终端封装的分包文件可以通过运行在单个线程中的会话上传至文件服务器,与现有技术中将多个分片文件分别通过多个线程进行并行上传相比,可以节省网络带宽,可以节省源终端和文件服务器中的缓存空间等资源。<
br>[0150]因此,本发明实施例可在占用较小的网络带宽和系统资源的情况下,提升文件传输效率。
[0151]本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、R0M( Read-Only Memory,只读存储器)、RAM (Random Access Memory,随即存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPR0M(E1 ectrically ErasableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
[0152]本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
[0153]本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
[0154]以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【主权项】
1.一种文件分包传输方法,其特征在于,包括: 源终端根据文件划分策略确定出文件的待划分片段的数目后,将所述文件的文件名、数目信息上传至文件服务器; 所述源终端根据所述文件划分策略对所述文件进行划分,对划分出的片段依次分配片段序号;并 对于每个片段,将该片段及其片段序号封装在一个分包文件中上传至文件服务器;之后,向所述文件服务器发送文件接收状况查询请求; 所述源终端在接收到所述文件服务器返回的重发信息后,根据所述重发信息中的片段序号,重新发送相应的分包文件; 其中,所述重发信息是所述文件服务器接收到所述文件接收状况查询请求后,根据其中携带的文件名,以及之前接收的所述文件的各分包文件中携带的片段序号,以及所述数目信息确定的。2.根据权利要求1所述的方法,其特征在于,还包括: 所述源终端在接收到所述文件服务器返回的接收确认信息后,将所述接收确认信息中的文件序号携带于下载指示信息中向目标终端发送; 所述目标终端根据所述下载指示信息中的文件序号从所述文件服务器获取所述文件的各分包文件,并根据各分包文件中的片段序号,依次拼接片段得到所述文件; 其中,所述文件序号为所述文件服务器确定接收到所述文件的所有分包文件后,为所述文件生成的。3.一种文件分包传输方法,其特征在于,包括: 文件服务器接收源终端上传的文件的文件名、和文件片段的数目信息并对应存储; 所述文件服务器接收所述源终端上传的分包文件后,将所述分包文件与所述文件名对应存储; 所述文件服务器接收到所述源终端发送的文件接收状况查询请求后,根据其中携带的文件名,以及之前接收的所述文件的各分包文件中携带的片段序号,以及所述数目信息,确定出未接收到的分包文件的片段序号;将确定出的片段序号携带于重发信息中向所述源终端返回。4.根据权利要求3所述的方法,其特征在于,还包括: 所述文件服务器若根据所述文件的各分包文件中携带的片段序号,以及所述数目信息,确定接收到所述文件的所有分包文件后,为所述文件生成文件序号,并向所述源终端返回携带所述文件序号的接收确认信息。5.根据权利要求4所述的方法,其特征在于,还包括: 所述文件服务器在接收到目标终端根据下载指示信息发送的文件下载请求后,根据所述文件下载请求中携带的文件序号,将相应的文件的所有分包文件向所述目标终端返回;其中,所述下载指示信息是源终端向所述目标终端发送的。6.一种终端,其特征在于,包括: 文件信息上传模块,用于根据文件划分策略确定出文件的待划分片段的数目后,将所述文件的文件名、数目信息上传至文件服务器; 分包文件上传模块,用于根据所述文件划分策略对所述文件进行划分,对划分出的片段依次分配片段序号;并对于每个片段,将该片段及其片段序号封装在一个分包文件中上传至文件服务器;之后,发送上传结束通知; 分包文件重传模块,用于接收到上传结束通知后,向所述文件服务器发送文件接收状况查询请求;以及在接收到返回的重发信息后,根据所述重发信息中的片段序号,重新发送相应的分包文件; 其中,所述重发信息是所述文件服务器接收到所述文件接收状况查询请求后,根据其中携带的文件名,以及之前接收的所述文件的各分包文件中携带的片段序号,以及所述数目信息确定的。7.根据权利要求6所述的终端,其特征在于,还包括:文件下载指示模块;以及 所述分包文件重传模块还用于在接收到所述文件服务器返回的接收确认信息后,向所述文件下载指示模块发送下载指示通知; 所述文件下载指示模块根据所述下载指示通知,将所述接收确认信息中的文件序号携带于下载指示信息中向目标终端发送; 其中,所述文件序号为所述文件服务器确定接收到所述文件的所有分包文件后,为所述文件生成的。8.根据权利要求7所述的终端,其特征在于,还包括: 文件下载模块,用于在接收到下载指示信息后,根据其中的文件序号从所述文件服务器获取所述文件的各分包文件,并根据各分包文件中的片段序号,依次拼接片段得到所述文件。9.一种文件服务器,其特征在于,包括: 文件信息存储模块,用于接收源终端上传的文件的文件名、和文件片段的数目信息并对应存储; 分包文件接收模块,用于接收所述源终端上传的分包文件后,将所述分包文件与所述文件名对应存储; 信息反馈模块,用于接收到所述源终端发送的文件接收状况查询请求后,根据其中携带的文件名,以及之前所述分包文件接收模块接收的所述文件的各分包文件中携带的片段序号,以及所述文件信息存储模块接收的数目信息,确定出未接收到的分包文件的片段序号;将确定出的片段序号携带于重发信息中向所述源终端返回。10.根据权利要求9所述的文件服务器,其特征在于, 所述信息反馈模块还用于若根据所述分包文件接收模块接收的所述文件的各分包文件中携带的片段序号,以及所述文件信息存储模块接收的数目信息,确定接收到所述文件的所有分包文件后,为所述文件生成文件序号,并向所述源终端返回携带所述文件序号的接收确认信息。
【专利摘要】本发明实施例提供了一种文件服务器、终端及其文件分包传输方法,所述方法包括:源终端根据文件划分策略确定出文件的待划分片段的数目后,将文件的文件名、数目信息上传至文件服务器;源终端根据文件划分策略对文件进行划分,对划分出的片段依次分配片段序号;并对于每个片段,将该片段及其片段序号封装在一个分包文件中上传至文件服务器;之后,向文件服务器发送文件接收状况查询请求;源终端在接收到文件服务器返回的重发信息后,重新发送相应的分包文件;重发信息是文件服务器根据文件名、各分包文件中携带的片段序号,以及数目信息确定的。利用本发明可以节省传输文件所花费的时间,提升文件传输效率,并节省带宽和系统资源。
【IPC分类】H04L29/08, H04L1/18, H04L1/16
【公开号】CN105491132
【申请号】CN201510916210
【发明人】尹彬
【申请人】北京元心科技有限公司
【公开日】2016年4月13日
【申请日】2015年12月11日