一种传输文件方法、装置及系统的制作方法

文档序号:7985609阅读:200来源:国知局
一种传输文件方法、装置及系统的制作方法
【专利摘要】本发明实施例公开了一种文件传输方法,包括:选取至少两个服务器,将源存储位置中的待传输文件发送至其中一个服务器的接收盘,如果发送失败,则依次发送所述待传输文件至其他服务器的接收盘直至成功为止,其中,所述至少两个服务器与所述源存储位置位于同一工作区域,成功接收所述待传输文件的服务器为主服务器;将所述主服务器的接收盘中的待传输文件分散成分散文件,将所述分散文件分配到所述主服务器的至少两个同步盘中;将所述主服务器的至少两个同步盘中的分散文件发送至目标存储位置。本发明实施例还公开了一种文件传输装置及系统。采用本发明,可提高文件传输的速率及可靠性,容错能力强。
【专利说明】一种传输文件方法、装置及系统
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种文件传输方法、装置及系统。
【背景技术】
[0002]随着信息化社会的快速发展,数据呈指数级增长,因而存储数据的文件所占用的空间越来越大,当需要对这些文件进行传输移动时,耗费的时间也越来越长,且传输过程中容易出错,导致文件传输失败。
[0003]在现有技术一中,采用了并发上传的处理方法来对多文件进行同时上传,此方法虽然提高了多文件同时上传的速率,但是在上传单个较大的文件时,速率仍然较慢,且此方法并没有提出避免上传出错的处理机制;在现有技术二中,采用了对文件进行切片后并发上传的方法,可以提高单个较大文件的上传速率,但是仍然没有提出避免上传出错的处理机制,容错性较差。

【发明内容】

[0004]本发明实施例所要解决的技术问题在于,提供一种文件传输方法、装置及系统。可提高文件传输的速率及可靠性,容错能力强。
[0005]本发明第一方面提供了一种文件传输方法,可包括:
选取至少两个服务器,将源存储位置中的待传输文件发送至其中一个服务器的接收盘,如果发送失败,则依次发送所述待传输文件至其他服务器的接收盘直至成功为止,其中,所述至少两个服务器与所述源存储位置位于同一工作区域,成功接收所述待传输文件的服务器为主服务器;
将所述主服务器的接收盘中的待传输文件分散成分散文件,将所述分散文件分配到所述主服务器的至少两个同步盘中;
将所述主服务器的至少两个同步盘中的分散文件发送至目标存储位置。
[0006]本发明第二方面提供了一种文件传输装置,可包括:
选取及传输模块,用于选取至少两个服务器,将源存储位置中的待传输文件发送至其中一个服务器的接收盘,如果发送失败,则依次发送所述待传输文件至其他服务器的接收盘直至成功为止,其中,所述至少两个服务器与所述源存储位置位于同一工作区域,成功接收所述待传输文件的服务器为主服务器;
计算分散模块,用于将所述主服务器的接收盘中的待传输文件分散成分散文件,将所述分散文件分配到所述主服务器的至少两个同步盘中;
文件传输模块,用于将所述主服务器的至少两个同步盘中的分散文件发送至目标存储位置。
[0007]本发明第三方面提出了一种文件传输系统,可包括:
中转单元,用于接收源存储位置中的待传输文件,将所述待传输文件发送至目标存储位置,所述中转单元至少包括两个服务器 '及 如上所述的装置。
[0008]实施本发明实施例,具有如下有益效果:
通过选取与源存储位置位于同一工作区域的两个服务器进行文件传输,距离近,传输速度快,且两个服务器可以实现双机互备,避免某一服务器出错时无法完成文件传输的情况,具有较强的容错性;在单服务器内使用至少两个同步盘并发传输,可实现快速异步传输,提升了文件传输的速率,且一个同步盘出现故障并不影响文件传输的完成,同样具有较强的容错性。
【专利附图】

【附图说明】
[0009]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0010]图1是本发明文件传输方法的第一实施例流程示意图;
图2是本发明文件传输方法的第二实施例流程示意图;
图3是本发明文件传输方法的第三实施例流程示意图;
图4是本发明文件传输装置的第一实施例组成示意图;
图5是本发明文件传输装置的第二实施例组成示意图;
图6是本发明实施例一种文件传输系统的组成示意图。
【具体实施方式】
[0011]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0012]请参照图1,为本发明文件传输方法的第一实施例流程示意图;在本实施例中,所述方法包括以下步骤:
S101,选取至少两个服务器,将源存储位置中的待传输文件发送至其中一个服务器的接收盘,如果发送失败,则执行步骤S102-S104,如果发送成功,则直接执行步骤S103-S104。
[0013]其中,所述至少两个服务器与所述源存储位置位于同一工作区域,成功接收所述待传输文件的服务器为主服务器。更具体地,所述至少两个服务器可以与所述源存储位置部署在同一个机房,便于服务器可以就近接收待传输文件。由于位置很近,所以传输速度快,且待传输文件传输到服务器后无需等待后续操作,可立即返回准备下一轮的传输。而通过选取的至少两个服务器可以互为主备服务器,提高了传输的容错性。
[0014]S102,依次发送所述待传输文件至其他服务器的接收盘直至成功为止。
[0015]需要说明的是,尝试发送所述待传输文件的顺序可以根据各个服务器的空间距离、传输速度、服务器处理能力等因素预先排序,当然,若每个服务器的情况差不多,也可以随机发送,只要确保最后能完成所述待传输文件的传输即可。为了确保完成文件传输,本发明实施例中采用的服务器可以是两台,也可以是三台甚至更多。例如,可以默认先传输到第一服务器,如果第一服务器没有问题,则第一服务器成为主服务器,直接执行后续的分散传输流程;如果第一服务器出现故障,则可以尝试传输至第二服务器,如果传输成功,则第二服务器成为主服务器,执行后续的分散传输流程,如果第二服务器出现故障,则可以尝试传输至第三服务器,依次类推,直至待传输文件成功地传输至某服务器的接收盘,因此,本方法具有良好的容错性。
[0016]S103,将所述主服务器的接收盘中的待传输文件分散成分散文件,将所述分散文件分配到所述主服务器的至少两个同步盘中。
[0017]一般地,服务器具有多块磁盘,当源存储位置中的待传输文件发送至服务器的接收盘后,可以将接收盘中的待传输文件分散成分散文件,然后分配到服务器内两个以上的同步盘当中,这样可以避免接收盘的磁盘空间过满,影响传输的连续性,同时,两个以上的同步盘可以并列工作,这样可以降低磁盘传输速率的瓶颈对传输速度的影响,而且两个以上的同步盘并列工作,即使某个同步盘出现故障,待传输文件仍可以成功地进行传输,提高了这种传输方法的容错性。
[0018]优选地,可以将分散文件平均分配至至少两个同步盘中,这样可以平均同步盘的传输压力,确保同一批待传输文件可以在相近的时间点完成传输。
[0019]S104,将所述主服务器的至少两个同步盘中的分散文件发送至目标存储位置。
[0020]相对于步骤SlOl中将待传输文件发送至服务器的近端传输,步骤S104中的传输一般属于远端传输,同步盘与目标存储位置的距离一般不在同一工作区域如同机房等情况。但是由于步骤SlOl中将待传输文件发送至服务器可立即返回,因此减少了系统资源的占用,不会对步骤S104中的远端传输造成影响。
[0021]在本实施例中,给出了一种双服务器互备,与源存储位置就近传输,多个同步盘同时完成远端传输的文件传输方法,因为距离近,传输速度快,且两个服务器可以实现双机互备,避免某一服务器出错时无法完成文件传输的情况,具有较强的容错性;在单服务器内使用至少两个同步盘并发传输,可实现快速异步传输,提升了文件传输的速率,且一个同步盘出现故障并不影响文件传输的完成,同样具有较强的容错性。
[0022]图2是本发明文件传输方法的第二实施例流程示意图;在本实施例中,所述方法包括以下步骤:
S201,选取至少两个服务器,将源存储位置中的待传输文件发送至其中一个服务器的接收盘,如果发送失败,则执行步骤S202-S206,如果发送成功,则直接执行步骤S202-S206。
[0023]其中,所述至少两个服务器与所述源存储位置位于同一工作区域,成功接收所述待传输文件的服务器为主服务器。
[0024]S202,依次发送所述待传输文件至其他服务器的接收盘直至成功为止。
[0025]S203,将所述主服务器的接收盘中的待传输文件分散成分散文件,将所述分散文件分配到主服务器的至少两个同步盘中。
[0026]S204,将所述主服务器的至少两个同步盘中的分散文件发送至目标存储位置。
[0027]S205,判断所述目标存储位置中的分散文件是否与所述同步盘中的分散文件相同。若是,则执行步骤S206,否则执行步骤S204直至所述目标存储位置中的分散文件与所述同步盘中的分散文件相同。
[0028]优选地,可以将目标存储位置的信息包含于所述待传输文件的文件名中,所述待传输文件的文件名至少包括所述目标存储位置的第一级目录名、第二级目录名。在传输之前可以对待传输文件的文件名作规范定义,使文件名中直接体现目标存储位置的信息,并且为服务器开通写权限,文件名中的格式可以进行如下定义:
<第一级目录名>#<第二级目录名>
例如一批待传输文件的目标存储位置如下:
第一级目录名:data 第二级目录名:personal
各级目录名以#为分隔符,连接后则形成了待传输文件的文件名: data#personal
则待传输文件最终将传输至目标存储位置的/data/personal/目录下。
[0029]当然,还可能存在第η级目录名及关于待传输文件的一些其他信息。
[0030]如〈第一级目录名>#〈第二级目录名>#〈第η级目录名>#<其他信息>
例如一批待传输文件的目标存储位置如下:
第一级目录名:data 第二级目录名:personal 第三级目录名:jacky 其他信息:mem0.txt
各级目录名以#为分隔符,连接后则形成了待传输文件的文件名: data#personal# jacky# memo, txt
则待传输文件最终将传输至目标存储位置的/data/personal/jacky目录下。
[0031]最终待传输文件的全路径名为:
/data/personal/jacky/ data#personal# jacky# memo, txt
S206,删除所述同步盘中的分散文件。
[0032]当同步盘中的分散文件已经成功传输至目标存储位置之后,即可以删除同步盘中的分散文件,为下一轮的文件传输清理出空间。
[0033]在本实施例中,增加了对目标存储位置接收的分散文件进行完整性验证的流程,进一步提高了文件传输的可靠性,对于同步盘中已成功传输的分散文件进行删除,为后续的文件传输清理出了空间,此外本实施例中还给出了定义待传输文件文件名的方法,通过该方法,可以明确目标存储位置的相关位置信息。
[0034]图3是本发明文件传输方法的第三实施例流程示意图;在本实施例中,所述方法包括以下步骤:
S301,选取至少两个服务器,将源存储位置中的待传输文件发送至其中一个服务器的接收盘,如果发送失败,则执行步骤S302-S308,如果发送成功,则直接执行步骤S303-S308。
[0035]S302,依次发送所 述待传输文件至其他服务器的接收盘直至成功为止。
[0036]S303,将所述主服务器的接收盘中的待传输文件分散成分散文件,将所述分散文件分配到主服务器的至少两个同步盘中。[0037]S304,根据所述待传输文件的文件名对所述待传输文件进行哈希计算得到分散文件数目。
[0038]S305,将所述分散文件按数目平均分配至所述同步盘中,如果不能平均分配,则根据分散文件数目对所述同步盘数目进行取模运算,将剩余的分散文件分配至不同的同步盘中。
[0039]S306,将所述主服务器的至少两个同步盘中的分散文件发送至目标存储位置。
[0040]S307,判断所述目标存储位置中的分散文件是否与所述同步盘中的分散文件相同。若是,则执行步骤S308,否则执行步骤S306直至所述目标存储位置中的分散文件与所述同步盘中的分散文件相同。
[0041 ] S308,删除所述同步盘中的分散文件。
[0042]通过哈希计算获得分散文件的数目,平均分配这些分散文件至同步盘中或通过取模运算尽量达到平均分配的效果,可以使得各个同步盘的传输任务量比较平均,每个同步盘完成传输的时间接近,无需花费太多时间等待其他同步盘的传输完成,因此节省了传输的时间,提闻了传输的效率。
[0043]图4是本发明文件传输装置的第一实施例组成示意图;在本实施例中,所述装置包括:选取及传输模块100、计算分散模块200及文件传输模块300。
[0044]所述选取及传输模块100用于选取至少两个服务器,将源存储位置中的待传输文件发送至其中一个服务器的接收盘,如果发送失败,则依次发送所述待传输文件至其他服务器的接收盘直至成功为止,其中,所述至少两个服务器与所述源存储位置位于同一工作区域,成功接收所述待传输文件的服务器为主服务器;
计算分散模块,用于将所述主服务器的接收盘中的待传输文件分散成分散文件,将所述分散文件分配到所述主服务器的至少两个同步盘中;
文件传输模块,用于将所述主服务器的至少两个同步盘中的分散文件发送至目标存储位置。
[0045]图5是本发明文件传输装置的第二实施例组成示意图;在本实施例中,所述装置包括:选取及传输模块100、计算分散模块200、文件传输模块300、完整性检查模块400及副本删除模块500。
[0046]所述完整性检查模块400用于判断所述目标存储位置中的分散文件是否与所述同步盘中的分散文件相同,若不相同,则指示所述文件传输模块重复发送所述同步盘中的分散文件至所述目标存储位置直至目标存储位置中的分散文件与所述同步盘中的分散文件相同;
所述副本删除模块500用于如果所述完整性检查模块400判断所述目标存储位置中的分散文件与所述同步盘中的分散文件相同时,删除所述同步盘中的分散文件。
[0047]所述目标存储位置的信息包含于所述待传输文件的文件名中,所述待传输文件的文件名至少包括所述目标存储位置的第一级目录名、第二级目录名。
[0048]所述计算分散模块200还用于:
根据所述待传输文件的文件名对所述待传输文件进行哈希计算得到分散文件数目;将所述分散文件按数目平均分配至所述同步盘中,如果不能平均分配,则根据分散文件数目对所述同步盘数目进行取模运算,将剩余的分散文件分配至不同的同步盘中。[0049]所述计算分散模块200进一步用于:将所述分散文件或剩余的分散文件按顺序依次分配至第一同步盘及第二同步盘,如果所述第一同步盘故障,则发送至所述第二同步盘。
[0050]图6是本发明实施例一种文件传输系统的组成示意图。在本实施例中,所述系统包括:中转单元600及如上所述的文件传输装置。
[0051]所述中转单元600用于接收源存储位置中的待传输文件,将所述待传输文件发送至目标存储位置,所述中转单元600至少包括两个服务器。
[0052]所述文件传输装置包括:选取及传输模块100、计算分散模块200及文件传输模块300。
[0053]可选地,所述文件传输装置还可以包括如图所示虚线部分中的完整性检查模块400及副本删除模块500。
[0054]所述选取及传输模块100选定所述中转单元600后,将源存储位置中的待传输文件发送至所述中转单元600,所述中转单元600至少包括两个服务器,确保传输的完成。
[0055]所述计算分散模块200将所述中转单兀600内的待传输文件分散成多个分散文件后发送至所述中转单元600上的至少两个同步盘中。
[0056]在所述文件传输模块300的指示下,将同步盘中的分散文件发送至目标存储位置。
[0057]可选地,通过所述完整性检查模块400检查目标存储位置中的分散文件是否完整,若不完整则指示所述文件传输模块300重复发送同步盘中的分散文件至目标存储位置直至目标存储位置中的分散文件与同步盘中的分散文件相同;若完整则指示副本删除模块删除所述中转单元600上的分散文件。完成本次的文件传输。
[0058]通过上述实施例的描述,本发明具有以下优点:
通过选取与源存储位置位于同一工作区域的两个服务器进行文件传输,距离近,传输速度快,且两个服务器可以实现双机互备,避免某一中转机出错时无法完成文件传输的情况,具有较强的容错性;在单服务器内使用至少两个同步盘并发传输,可实现快速异步传输,提升了文件传输的速率,且一个同步盘出现故障并不影响文件传输的完成,同样具有较强的容错性;传输完毕后进行完整性验证,进一步提高了文件传输的可靠性;完整性验证通过后删除中转机上的分散文件,为下一次传输提供了良好的存储空间。
[0059]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0060]以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【权利要求】
1.一种文件传输方法,其特征在于,包括: 选取至少两个服务器,将源存储位置中的待传输文件发送至其中一个服务器的接收盘,如果发送失败,则依次发送所述待传输文件至其他服务器的接收盘直至成功为止,其中,所述至少两个服务器与所述源存储位置位于同一工作区域,成功接收所述待传输文件的服务器为主服务器; 将所述主服务器的接收盘中的待传输文件分散成分散文件,将所述分散文件分配到所述主服务器的至少两个同步盘中; 将所述主服务器的至少两个同步盘中的分散文件发送至目标存储位置。
2.如权利要求1所述的方法,其特征在于,将所述主服务器的至少两个同步盘中的分散文件发送至目标存储位置之后,还包括: 判断所述目标存储位置中的分散文件是否与所述同步盘中的分散文件相同; 若是,则删除所述同步盘中的分散文件; 若否,则重复发送所述同步盘中的分散文件至所述目标存储位置直至所述目标存储位置中的分散文件与所述同步盘中的分散文件相同。
3.如权利要求1或2所述的方法,其特征在于,所述目标存储位置的信息包含于所述待传输文件的文件名中,所述待 传输文件的文件名至少包括所述目标存储位置的第一级目录名、第二级目录名。
4.如权利要求3所述的方法,其特征在于,将所述主服务器的接收盘中的待传输文件分散成分散文件,将所述分散文件分配到所述主服务器的至少两个同步盘中,包括: 根据所述待传输文件的文件名对所述待传输文件进行哈希计算得到分散文件数目;将所述分散文件按数目平均分配至所述同步盘中,如果不能平均分配,则根据分散文件数目对所述同步盘数目进行取模运算,将剩余的分散文件分配至不同的同步盘中。
5.如权利要求4所述的方法,其特征在于,将所述分散文件或剩余的分散文件按顺序依次分配至第一同步盘及第二同步盘,如果所述第一同步盘故障,则发送至所述第二同步盘。
6.一种文件传输装置,其特征在于,包括: 选取及传输模块,用于选取至少两个服务器,将源存储位置中的待传输文件发送至其中一个服务器的接收盘,如果发送失败,则依次发送所述待传输文件至其他服务器的接收盘直至成功为止,其中,所述至少两个服务器与所述源存储位置位于同一工作区域,成功接收所述待传输文件的服务器为主服务器; 计算分散模块,用于将所述主服务器的接收盘中的待传输文件分散成分散文件,将所述分散文件分配到所述主服务器的至少两个同步盘中; 文件传输模块,用于将所述主服务器的至少两个同步盘中的分散文件发送至目标存储位置。
7.如权利要求6所述的装置,其特征在于,所述装置还包括: 完整性检查模块,用于判断所述目标存储位置中的分散文件是否与所述同步盘中的分散文件相同,若不相同,则指示所述文件传输模块重复发送所述同步盘中的分散文件至所述目标存储位置直至目标存储位置中的分散文件与所述同步盘中的分散文件相同; 副本删除模块,用于如果所述完整性检查模块判断所述目标存储位置中的分散文件与所述同步盘中的分散文件相同时,删除所述同步盘中的分散文件。
8.如权利要求6或7所述的装置,其特征在于,所述目标存储位置的信息包含于所述待传输文件的文件名中,所述待传输文件的文件名至少包括所述目标存储位置的第一级目录名、第二级目录名。
9.如权利要求8所述的装置,其特征在于,所述计算分散模块还用于: 根据所述待传输文件的文件名对所述待传输文件进行哈希计算得到分散文件数目; 将所述分散文件按数目平均分配至所述同步盘中,如果不能平均分配,则根据分散文件数目对所述同步盘数目进行取模运算,将剩余的分散文件分配至不同的同步盘中。
10.如权利要求9所述的装置,其特征在于,所述计算分散模块进一步用于:将所述分散文件或剩余的分散文件按顺序依次分配至第一同步盘及第二同步盘,如果所述第一同步盘故障,则发送至所述第二同步盘。
11.一种文件传输系统,其特征在于,包括: 中转单元,用于接收源存储位置中的待传输文件,将所述待传输文件发送至目标存储位置,所述中转单元至少包括两个服务器 '及 如权利要求6-10任一项 所述的装置。
【文档编号】H04L29/08GK103812899SQ201210453247
【公开日】2014年5月21日 申请日期:2012年11月13日 优先权日:2012年11月13日
【发明者】覃武权, 赵子轩, 钱程路, 李鹤, 芦方, 奚少杰, 庄子明, 邹永, 林松 申请人:深圳市世纪光速信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1