1.本发明属于文件并发传输领域,具体涉及一种文件并发传输方法、系统、存储介质及电子设备。
背景技术:2.随着互联网的快速发展,用户对网络性能的要求越来越高,对于文件的传输,大文件的传输变得越来越频繁,传输的效率是我们比较关心的。对于目前企业上大部分服务器,cpu几十核、内存百吉以上都已是标配,大部分也都支持超线程,网卡都能支持到千兆以上。所以如果能充分利用上各种硬件资源,达到最高效的传输方式是最理想的。并发、可断点续传,能很好的提高传输性能。
3.并发传输:在机器的cpu是多核的情况下,程序中如果采用了多线程,那么程序会并发执行相同的逻辑,提高效率。
4.断点续传:在传输的文件失败后,断点续传可以在失败之后的数据开始传输,之前传输成功的不再传输,减少传输时间。
5.通过搭建ftp服务器实现文件的传输共享,ftp服务是基于ftp协议。ftp协议是tcp/ip协议组中的协议之一。ftp协议包括两个组成部分,其一为ftp服务器,其二为ftp客户端。其中ftp服务器用来存储文件,用户可以使用ftp客户端通过ftp协议访问位于ftp服务器上的资源。在开发网站的时候,通常利用ftp协议把网页或程序传到web服务器上。此外,由于ftp传输效率非常高,在网络上传输大的文件时,一般也采用该协议。ftp协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。假设两台计算机通过ftp协议对话,并且能访问internet。
技术实现要素:6.本技术实施例提供了一种文件并发传输方法、系统、存储介质及电子设备,以至少解决现有的文件并发传输方法中传输性能不足的问题。
7.本发明提供了一种文件并发传输方法,其中,包括:
8.文件接收步骤:接收原始文件及传输参数;
9.文件处理步骤:根据所述传输参数将所述原始文件切分为多个数据块;
10.数据块传输步骤:根据传输参数通过网络将多个所述数据块并发传输至接收端;
11.数据块合并步骤:通过合并文件服务将多个所述数据块在所述接收端上进行合并形成所述原始文件。
12.上述文件并发传输方法,其中,还包括:
13.数据块传输监控步骤:每隔一指定时间,获取已经写入所述接收端的数据块的大小、传输状态及数据块id。
14.上述文件并发传输方法,其中,所述传输参数包括:接收端ip、远程接受文件目录、
重传、断点续传、配置文件及发送端的cpu核数;
15.所述文件处理步骤中通过所述配置文件获取数据块大小,根据所述数据块大小对所述原始文件进行切分,所述文件处理步骤中通过所述cpu核数设置并发传输的线程个数;
16.所述数据块传输步骤中,根据所述接收端ip将所述数据块传输至所述接收端的所述远程接受文件目录。
17.上述文件并发传输方法,其中,所述数据块传输步骤中包括:每一数据块在传输完成后,将传输状态标志位为success;当传输某一数据块时发生异常后,将传输状态标志位为failed或running,断点续传时,仅传输所述传输状态标志位为failed或running的数据块。
18.本发明还提供了一种文件并发传输系统,其中,包括:
19.文件接收模块,所述文件接收模块接收原始文件及传输参数;
20.文件处理模块,所述文件处理模块根据所述传输参数将所述原始文件切分为多个数据块;
21.数据块传输模块,所述数据块传输模块根据传输参数通过网络将多个所述数据块并发传输至接收端;
22.数据块合并模块,所述数据块合并模块通过合并文件服务将多个所述数据块在所述接收端上进行合并形成所述原始文件。
23.上述文件并发传输系统,其中,还包括:
24.数据块传输监控模块,所述据块传输监控模块每隔一指定时间,获取已经写入所述接收端的数据块的大小、传输状态及数据块id。
25.上述文件并发传输系统,其中,所述传输参数包括:接收端ip、远程接受文件目录、重传、断点续传、配置文件及发送端的cpu核数;
26.所述文件处理模块中通过所述配置文件获取数据块大小,根据所述数据块大小对所述原始文件进行切分,所述文件处理模块中通过所述cpu核数设置并发传输的线程个数;
27.所述数据块传输模块中,根据所述接收端ip将所述数据块传输至所述接收端的所述远程接受文件目录。
28.上述文件并发传输系统,其中,每一数据块在传输完成后,将传输状态标志位为success;当传输某一数据块时发生异常后,将传输状态标志位为failed或running,断点续传时,仅传输所述传输状态标志位为failed或running的数据块。
29.本发明还提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现任一所述的文件并发传输方法。
30.本发明还提供一种存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现任一所述的文件并发传输方法。
31.本发明的有益效果在于:
32.本发明属于数据能力中的数据传输领域。本发明的文件并发传输方法减少了传输时间,提高了传输效率,由于支持断点续传减少了失败重传的效率。
附图说明
33.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。
34.在附图中:
35.图1是本发明的文件并发传输方法的技术路线流程图;
36.图2是本发明的文件并发传输方法的流程图;
37.图3是本发明的文件并发传输系统的结构示意图;
38.图4是根据本发明实施例的电子设备的框架图。
具体实施方式
39.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。基于本技术提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
40.显而易见地,下面描述中的附图仅仅是本技术的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本技术应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本技术公开的内容相关的本领域的普通技术人员而言,在本技术揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本技术公开的内容不充分。
41.在本技术中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本技术所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
42.除非另作定义,本技术所涉及的技术术语或者科学术语应当为本技术所属技术领域内具有一般技能的人士所理解的通常意义。本技术所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本技术所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本技术所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本技术所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本技术所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
43.下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、
或者结构上的等效变换或替代,均属于本发明的保护范围之内。
44.在详细阐述本发明各个实施例之前,对本发明的核心发明思想予以概述,并通过下述若干实施例予以详细阐述。
45.实施例一:
46.本发明提供一种文件并发传输方法,本发明主要的流程如图1所示,本发明充分利用服务器的软硬件以及网络资源,采用多线程并发传输,当由于各种不可控原因导致传输失败后,支持断点续传,保证不浪费已传输数据的空间与时间。
47.请参照图2,图2是文件并发传输方法的流程图。如图2所示,本发明的文件并发传输方法包括:
48.文件接收步骤s1:接收原始文件及传输参数;
49.文件处理步骤s2:根据所述传输参数将所述原始文件切分为多个数据块;
50.数据块传输步骤s3:根据传输参数通过网络将多个所述数据块并发传输至接收端;
51.数据块合并步骤s4:通过合并文件服务将多个所述数据块在所述接收端上进行合并形成所述原始文件。
52.其中,还包括:
53.数据块传输监控步骤:每隔一指定时间,获取已经写入所述接收端的数据块的大小、传输状态及数据块id。
54.其中,所述传输参数包括:接收端ip、远程接受文件目录、重传、断点续传、配置文件及发送端的cpu核数;
55.所述文件处理步骤中通过所述配置文件获取数据块大小,根据所述数据块大小对所述原始文件进行切分,所述文件处理步骤中通过所述cpu核数设置并发传输的线程个数;
56.所述数据块传输步骤中,根据所述接收端ip将所述数据块传输至所述接收端的所述远程接受文件目录。
57.其中,所述数据块传输步骤中包括:每一数据块在传输完成后,将传输状态标志位为success;当传输某一数据块时发生异常后,将传输状态标志位为failed或running,断点续传时,仅传输所述传输状态标志位为failed或running的数据块。
58.具体地说,大文件传输主程序(以下简称“程序”)接受要传输的大文件数据(以下简称“文件”),以及传输参数,如远程接受文件服务器的ip、远程接受文件的目录、重传还是断点续传。程序从配置文件中获取文件切分数据块大小,程序获取当前机器(部署程序所在的机器)上cpu的核数(或者超线程个数)。如果当前机器只是用来发送大数据文件,仅有这一个程序的服务的话,那程序在设置并发传输的线程个数时,跟cpu核数保持一致即可。如果当前机器上还有其他服务在运行,则按需计算要使用的核数(譬如cpu核数除以2)。需要保证的是,程序中并发的个数乘以每个线程所处理的数据块的大小,不能大于机器的总内存(当前机器只有传输数据的这一个服务的情况下)。
59.文件传输的主要逻辑,程序根据上一步设置好的并发和切分数据块大小,并指定接收文件服务器的地址跟目录后,就交给线程内部逻辑来处理对各个数据块的远程传输任务了。
60.通过网络传输上一步并发发送的文件,网卡支持的最大带宽尽量不小于网络带
宽,这样才能达到更高效快速的文件传输。
61.线程内部每隔指定的时间(如1秒),获取已经写入的当前数据块的大小,并将此值更新到库中对应的记录上。在当前线程处理完整个数据块后,需要修改数据库中传输状态标志位为success。线程内部的逻辑在遇到异常时,必须捕获并且处理,处理主要是更改数据库中传输状态标志位为failed。
62.传输完成后,程序调用远程接受文件服务器上的合并文件的服务,对传输完成的文件合并成一个大文件。
63.重传、断点续传说明:
64.如果需要重传时(此时往往是因为要传输的原始文件有变化),程序要做的是:1)调用远程接受文件服务器上的服务删除之前传输完的文件;2)删除数据库中当前文件id的记录(或者不删除,但再次传输相同文件的时候需要对文件id做区分);3)走传输文件的上面几个操作。
65.如果断点续传时(此时是因为在4步骤时程序返回了异常导致相关线程没有传输完当前线程的数据块:传输状态为failed,最极端的情况是机器宕机:传输状态为running),程序要做的是:1)获取数据库中当前续传文件id里对应“传输状态”标志位为failed和running的记录;2)对文件切分(切分时保证跟上次传输切分参数一致),只传输failed和running记录对应的那些切分块,从数据库中“已传输大小”字段值开始传输,这样达到了断点续传的效果。
66.实施例二:
67.请参照图3,图3是本发明的文件并发传输系统的结构示意图。如图3所示本发明的一种文件并发传输系统,其中,包括:
68.文件接收模块,所述文件接收模块接收原始文件及传输参数;
69.文件处理模块,所述文件处理模块根据所述传输参数将所述原始文件切分为多个数据块;
70.数据块传输模块,所述数据块传输模块根据传输参数通过网络将多个所述数据块并发传输至接收端;
71.数据块合并模块,所述数据块合并模块通过合并文件服务将多个所述数据块在所述接收端上进行合并形成所述原始文件。
72.上述文件并发传输系统,其中,还包括:
73.数据块传输监控模块,所述据块传输监控模块每隔一指定时间,获取已经写入所述接收端的数据块的大小、传输状态及数据块id。
74.上述文件并发传输系统,其中,所述传输参数包括:接收端ip、远程接受文件目录、重传、断点续传、配置文件及发送端的cpu核数;
75.所述文件处理模块中通过所述配置文件获取数据块大小,根据所述数据块大小对所述原始文件进行切分,所述文件处理模块中通过所述cpu核数设置并发传输的线程个数;
76.所述数据块传输模块中,根据所述接收端ip将所述数据块传输至所述接收端的所述远程接受文件目录。
77.上述文件并发传输系统,其中,每一数据块在传输完成后,将传输状态标志位为success;当传输某一数据块时发生异常后,将传输状态标志位为failed或running,断点续
side bus,简称为fsb)、超传输(hyper transport,简称为ht)互连、工业标准架构(industry standard architecture,简称为isa)总线、无线带宽(infiniband)互连、低引脚数(low pin count,简称为lpc)总线、存储器总线、微信道架构(micro channel architecture,简称为mca)总线、外围组件互连(peripheral component interconnect,简称为pci)总线、pci
‑
express(pci
‑
x)总线、串行高级技术附件(serial advanced technology attachment,简称为sata)总线、视频电子标准协会局部(video electronics standards association local bus,简称为vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线80可包括一个或多个总线。尽管本技术实施例描述和示出了特定的总线,但本技术考虑任何合适的总线或互连。
87.该电子设备可以基于文件并发传输,从而实现结合图2描述的方法。
88.另外,结合上述实施例中文件并发传输方法,本技术实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种文件并发传输方法。
89.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
90.综上所述,基于本发明的有益效果在于,本发明减少了传输时间,提高了传输效率,由于支持断点续传减少了失败重传的效率。
91.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本发明的保护范围应以所附权利要求的保护范围为准。