本发明属于数据传输技术领域,尤其涉及一种多文件的数据分段高速上传方法、客户端及服务器。
背景技术:
现在市面上主流的文件数据传输技术仅单纯采用ftp或http进行上传。ftp或http协议的规定决定了文件上传的速度,且指定了上传目标后,本次传输也只能传输到指定的位置。另外,无法自如的控制传输的形式,多个文件数据上传时只能采用流式传输,即传送1份数据信息后再继续传输另1份数据信息,传输速度较慢。
技术实现要素:
本发明提供一种多文件的数据分段高速上传方法、客户端及服务器,可实现多个文件数据的的快速传输。
为解决上述技术问题,本发明提供了一种多文件的数据分段高速上传方法,应用于客户端,包括:
获取待上传文件的结构信息;
发送所述待上传文件的结构信息到服务器;
接收服务器发送的几何拓扑结构信息;
根据所述几何拓扑结构信息传输所述待上传文件到服务器的多个存储节点。
根据本发明的一实施方式,所述获取待上传文件的结构信息的步骤包括:
确定待上传文件的目录位置;
记录所述待上传文件中最顶层文件夹以及各级子文件夹的文件夹信息;
整合所述最顶层文件夹以及各级子文件夹的文件夹信息得到所述待上传文件的结构信息。
根据本发明的另一实施方式,所述记录所述待上传文件中最顶层文件夹以及各级子文件夹的文件夹信息的步骤包括:
判断所述待上传文件的文件夹结构,包括最顶层文件夹以及各级子文件夹;
所述最顶层文件夹以及各级子文件夹作为多个结点分别记录其各自的文
件夹名称;
拼接多个所述结点的文件夹名称得到所述待上传文件中最顶层文件夹以
及各级子文件夹的文件夹信息。
根据本发明的另一实施方式,所述根据所述几何拓扑结构信息传输所述待上传文件到服务器的多个存储节点的步骤包括:
客户端根据所述几何拓扑结构信息确定多个数据传输线程;
分配每个所述数据传输线程对应传输的所述待上传文件的数据内容;
开启每个所述数据传输线程并传输对应的所述待上传文件的数据内容到服务器的对应存储节点。
根据本发明的另一实施方式,所述开启每个数据传输线程并传输对应的所述待上传文件的数据内容到所述服务器的对应存储节点的步骤之后还包括:
当每个所述数据传输线程均完成对应的所述待上传文件的数据内容的传输时,关闭每个所述数据传输线程。
另一方面,本发明还提供了一种多文件的数据分段高速上传方法,应用于服务器,包括:
接收客户端发送的所述待上传文件的结构信息;
根据所述待上传文件数据的结构信息生成所述几何拓扑结构信息;
发送所述几何拓扑结构信息到客户端;
根据所述几何拓扑结构信息分配多个存储节点;
接收客户端上传的所述待上传文件并存储到多个所述存储节点。
再一方面,本发明还提供了一种客户端,包括:
获取模块,用于获取待上传文件的结构信息;
第一发送模块,用于发送所述待上传文件的结构信息到服务器;
接收模块,用于接收服务器发送的几何拓扑结构信息;
上传模块,用于根据所述几何拓扑结构信息传输所述待上传文件到服务器的多个存储节点。
根据本发明的一实施方式,所述获取模块包括:
位置确定单元,用于确定待上传文件的目录位置;
记录单元,用于记录所述待上传文件中最顶层文件夹以及各级子文件夹的文件夹信息;
整合单元,用于整合所述最顶层文件夹以及各级子文件夹的文件夹信息得到所述待上传文件的结构信息。
根据本发明的另一实施方式,所述上传模块包括:
线程确定单元,用于客户端根据所述几何拓扑结构信息确定多个数据传输线程;
分配单元,用于分配每个所述数据传输线程对应传输的所述待上传文件的数据内容;
传输单元,用于开启每个所述数据传输线程并传输对应的所述待上传文件的数据内容到服务器的对应存储节点。
又一方面,本发明还提供了一种服务器,包括:
结构信息接收模块,用于接收客户端发送的所述待上传文件的结构信息;
生成模块,用于根据所述待上传文件数据的结构信息生成所述几何拓扑结
构信息;
第二发送模块,用于发送所述几何拓扑结构信息到客户端;
存储节点分配模块,用于根据所述几何拓扑结构信息分配多个存储节点;
存储模块,用于接收客户端上传的所述待上传文件并存储到多个所述存储节点。
本发明的有益效果:
本发明的一种多文件的数据分段高速上传方法、客户端及服务器首先客户端获取待上传文件的结构信息,发送给服务器,之后接收服务器反馈的几何拓扑结构信息,客户端根据几何图形拓扑的结构传输待上传文件到服务器的多个存储节点,本发明实施例多文件的数据分段高速上传方法中服务器根据待上传文件的结构信息预先在分配对应的多个存储节点,之后客户端根据自身性能分配的cpu资源,同时上传多个文件,大幅度增加了文件信息传输的速率,保留了传统技术的易用性且突破传统的多个文件上传只能采用流式传输的速度瓶颈。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种多文件的数据分段高速上传方法(应用于客户端)的一个实施例的流程示意图;
图2是本发明的一种多文件的数据分段高速上传方法的步骤100的一个实施例的流程示意图;
图3是本发明的一种多文件的数据分段高速上传方法的步骤102的一个实施例的流程示意图;
图4是本发明的一种多文件的数据分段高速上传方法的步骤400的一个实施例的流程示意图;
图5是本发明的一种多文件的数据分段高速上传方法(应用于服务器)的一个实施例的流程示意图;
图6是本发明的一种客户端的一个实施例的结构示意图;
图7是本发明的一种服务器的一个实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种多文件的数据分段高速上传方法,应用于客户端,包括:
步骤100:获取待上传文件的结构信息;
步骤200:发送所述待上传文件的结构信息到服务器;
步骤300:接收服务器发送的几何拓扑结构信息;
步骤400:根据所述几何拓扑结构信息传输所述待上传文件到服务器的多个存储节点。
本发明实施例的一种多文件的数据分段高速上传方法首先获取待上传文件的结构信息,发送给服务器,之后接收服务器反馈的几何拓扑结构信息,客户端根据几何图形拓扑的结构传输所述待上传文件到服务器的多个存储节点,本发明实施例多文件的数据分段高速上传方法中服务器根据待上传文件的结构信息预先在分配对应的多个存储节点,之后客户端根据自身性能分配的cpu资源,同时上传多个文件,大幅度增加了文件信息传输的速率,保留了传统技术的易用性且突破传统的多个文件上传只能采用流式传输的速度瓶颈。
如图2所示,作为一个举例说明,本发明实施例的一种多文件的数据分段高速上传方法的步骤100包括:
步骤101:确定待上传文件的目录位置;
步骤102:记录所述待上传文件中最顶层文件夹以及各级子文件夹的文件夹信息;
步骤103:整合所述最顶层文件夹以及各级子文件夹的文件夹信息得到所述待上传文件的结构信息。
如图3所示,作为另一个举例说明,本发明实施例的一种多文件的数据分段高速上传方法的步骤102包括:
步骤1021:判断所述待上传文件的文件夹结构,包括最顶层文件夹以及各级子文件夹;
步骤1022:所述最顶层文件夹以及各级子文件夹作为多个结点分别记录其各自的文件夹名称;
步骤1023:拼接多个所述结点的文件夹名称得到所述待上传文件中最顶层文件夹以及各级子文件夹的文件夹信息。
本发明实施例的一种多文件的数据分段高速上传方法的步骤100具体为:每个文件夹都视为结点,结点包含self(自身)以及child(子节点的名称),这是一个结构体。首先输入待上传文件夹的目录位置,判断该文件夹下是否存在子文件夹。之后将各文件夹的情况记录到各自相应的结点。最后把每个结点拼接起来,最终得到1个长链即文件夹信息,该长链包括从最顶层的文件夹名称,深入到各级子文件夹名称。
如图4所示,作为另一个举例说明,本发明实施例的一种多文件的数据分段高速上传方法的步骤400包括:
步骤401:客户端根据所述几何拓扑结构信息确定多个数据传输线程;
步骤402:分配每个所述数据传输线程对应传输的所述待上传文件的数据内容;
步骤403:开启每个所述数据传输线程并传输对应的所述待上传文件的数据内容到服务器的对应存储节点。
本发明实施例的一种多文件的数据分段高速上传方法的步骤400具体为:客户端根据几何拓扑结构信息计算本身性能情况,主要是判断有多少数据传输线程同时开启效果最佳,其计算公式是:cpu的逻辑处理器数目乘以2。之后定义数据传输线程指定上传什么数据内容,一般数据传输线程从一个资源池中取出资源,多个数据传输线程同时抢夺资源进行工作,但确保每个要上传的资源有且只有1个数据传输线程去负责上传。最后定义完成后,同时开启多个数据传输线程传输所述待上传文件的数据内容到服务器的多个存储节点。本发明实施例的一种多文件的数据分段高速上传方法能够实现多个数据传输线程同时开始传输多个文件,最大化的将cpu资源利用起来,能以最快的速度将每个文件夹的传送至对应的存储节点位置。
如图1所示,作为另一个举例说明,本发明实施例的一种多文件的数据分段高速上传方法的步骤400之后还包括:
步骤500:当每个所述数据传输线程均完成对应的所述待上传文件的数据内容的传输时,关闭每个所述数据传输线程。
本发明实施例的一种多文件的数据分段高速上传方法在每个所述数据传输线程均完成对应的所述待上传文件的数据内容的传输之后及时关闭每个所述数据传输线程,以及时释放cpu资源等待执行后续工作。
另一方面,如图5所示,本发明实施例还提供了一种多文件的数据分段高速上传方法,应用于服务器,包括:
步骤600:接收客户端发送的所述待上传文件的结构信息;
步骤700:根据所述待上传文件数据的结构信息生成所述几何拓扑结构信息;
步骤800:发送所述几何拓扑结构信息到客户端;
步骤900:根据所述几何拓扑结构信息分配多个存储节点;
步骤1000:接收客户端上传的所述待上传文件并存储到多个所述存储节点。
本发明实施例还提供了一种多文件的数据分段高速上传方法的服务器接收客户端发送的所述待上传文件的结构信息,并分析根据结构信息生成所述几何拓扑结构信息反馈给客户端,同时根据几何拓扑结构信息分配多个存储节点依次创建多个存储节点即分配存储资源,之后接收客户端上传的所述待上传文件并存储到多个所述存储节点。本发明实施例还提供了一种多文件的数据分段高速上传方法的服务器可以根据客户端提供的结构信息预先并合理化的分配存储资源,提高了文件数据的速度。
再一方面,如图6所示,本发明实施例还提供了一种客户端10,包括:
获取模块11,用于获取待上传文件的结构信息;
第一发送模块12,用于发送所述待上传文件的结构信息到服务器;
接收模块13,用于接收服务器发送的几何拓扑结构信息;
上传模块14,用于根据所述几何拓扑结构信息传输所述待上传文件到服务器的多个存储节点。
作为另一个举例说明,本发明实施例的客户端10的获取模块11包括:
位置确定单元,用于确定待上传文件的目录位置;
记录单元,用于记录所述待上传文件中最顶层文件夹以及各级子文件夹的文件夹信息;
整合单元,用于整合所述最顶层文件夹以及各级子文件夹的文件夹信息得到所述待上传文件的结构信息。
作为另一个举例说明,本发明实施例的客户端10的上传模块14包括:
线程确定单元,用于客户端根据所述几何拓扑结构信息确定多个数据传输线程;
分配单元,用于分配每个所述数据传输线程对应传输的所述待上传文件的数据内容;
传输单元,用于开启每个所述数据传输线程并传输对应的所述待上传文件的数据内容到服务器的对应存储节点。
又一方面,如图7所示,本发明实施例还提供了一种服务器20,包括:
结构信息接收模块21,用于接收客户端发送的所述待上传文件的结构信息;
生成模块22,用于根据所述待上传文件数据的结构信息生成所述几何拓扑结构信息;
第二发送模块23,用于发送所述几何拓扑结构信息到客户端;
存储节点分配模块24,用于根据所述几何拓扑结构信息分配多个存储节点;
存储模块25,用于接收客户端上传的所述待上传文件并存储到多个所述存储节点。
本发明实施例的客户端先统计待上传文件的目录情况,尤其是待上传文件包括多个目录或1个目录中包含多个子集目录时,然后将待上传文件的结构信息即目录信息发送给服务器,服务器得知该结构信息后,一次性创建所有的存储节点,为供后续的传输做好准备。客户端同时自动判断自身硬件情况并最大化利用cpu的性能创建多个数据传输线程,其判断的依据则是该客户端有多少个实际的物理处理内核,每个内核负责1个线程,从而最大化保证客户端的性能得到充分的利用。最后开启多个数据传输线程同时传输待上传文件的数据内容到服务器的多个存储节点,从而大幅度提升了传输的速度和性能。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。