文件传输方法、装置和电子设备与流程

阅读: 评论:0



1.本技术涉及数据传输技术领域,具体而言,本技术涉及一种文件传输方法、装置、电子设备、计算机可读存储介质及计算机程序产品。


背景技术:



2.在银行业务中,文件交流(包括:一个客户端向另一客户端传输文件)是一种很常见的工作流程。现有技术中,一般会采用文件传输系统来协同两个客户端处理该工作流程。
3.目前,文件传输系统在应对文件传输操作时,只能提供串行和并行传输方式。如,在面对海量小文件(百万级的小数据量的文件,如发票)的传输时,采用串行的传输方式进行传输比较浪费时间。如,在面对超大文件时(数百g数据量的文件,如一个程序包),采用并行的传输方式则对带宽提出较高的要求。
4.因此,如何满足对海量文件或者超大文件的传输,则成为需要解决的技术问题。


技术实现要素:



5.本技术实施例的目的在于提供一种文件传输方法、装置、电子设备、计算机可读存储介质及计算机程序产品,以解决上述技术问题之一。为了实现该目的,本技术实施例提供了如下方案。
6.一方面,本技术实施例提供了一种文件传输方法,该方法包括:
7.响应于携带传输参数的传输指令,遍历第一客户端所配置的第一共享目录确定待传输的第一原始文件;所述传输参数中包括第二客户端的标识;依据第一原始文件所占存储空间和/或所包含的文件数量确定目标处理方式;根据目标处理方式对第一原始文件进行处理,得到待传输的第一子文件;其中,对第一原始文件的处理包括:拆分处理、合并处理;通过注册中心查第二客户端所配置的在线节点,并从在线的节点中确定第二节点;将第一子文件和目标处理方式传输至第二节点。
8.可选地,依据第一原始文件所占存储空间和/或所包含的文件数量确定目标处理方式,包括:
9.计算第一原始文件中文件的总数量和第一原始文件所占的总存储空间;若总数量大于第一阈值,确定目标处理方式为合并处理方式;若总数量小于或等于第一阈值,且若总存储空间大于第二阈值,确定目标处理方式为拆分处理方式。
10.可选地,在计算第一原始文件中文件的总数量和第一原始文件所占的总存储空间的步骤之后,该方法还包括:
11.若总存储空间大于第二阈值,确定目标处理方式为拆分处理方式;若总存储空间小于或等于第二阈值,且若总数量大于第一阈值,确定目标处理方式为合并处理方式。
12.可选地,根据目标处理方式对第一原始文件进行处理,得到待传输的第一子文件,包括:
13.若目标处理方式为合并处理方式,按照预设的单位文件数量对第一原始文件所包
含的多个文件进行合并处理,得到至少一个第一子文件;每一第一子文件配置有与合并处理的顺序相应的文件序号;
14.若目标处理方式为拆分处理方式,按照预设的单位存储空间对第一原始文件所包含的多个文件进行拆分处理,得到至少一个第一子文件;每一第一子文件配置有与拆分处理的顺序相应的文件序号。
15.可选地,通过注册中心查第二客户端所配置的在线的节点,并从在线的节点中确定第二节点,包括:
16.向注册中心发送携带第二客户端的标识的请求;传输参数中携带第二客户端的标识;响应于注册中心反馈的第二客户端相应的在线列表,将在线列表中工作状态为空闲状态的相应节点确定为第二节点。
17.可选地,在遍历第一客户端所配置的第一共享目录之前,该方法还包括:
18.获取第一认证结果;第一认证结果表征第一节点是否配置有对第一共享目录的可读权限;根据第二客户端的标识获取第二认证结果;第二认证结果表征第一客户端是否配置对第二客户端所配置的第二共享目录的可写权限。
19.其中,若第一认证结果为配置有可读权限,且第二认证结果为配置有可写权限,遍历第一客户端所配置的第一共享目录。
20.可选地,若接收到第三节点发送的第二子文件,第三节点为第三客户端所配置的节点;该方法还包括:
21.若当前节点为执行整理操作的节点,统计所有的第二子文件;
22.若第二子文件相应的目标处理方式为合并处理方式,依照每一第二子文件相应的文件序号确定每一第二子文件所处的路径层次,并依据路径层次进行重新组合,得到由包括预设数量的文件组成的第二原始文件。
23.若第二子文件相应的目标处理方式为拆分处理方式,依照每一第二子文件相应的文件序号确定每一第二子文件所处的路径层次,并依据路径层次进行合并处理,得到第二原始文件。
24.另一方面,本技术实施例还提供了一种文件传输装置,该装置包括:
25.扫描模块,用于响应于携带传输参数的传输指令,遍历第一客户端所配置的第一共享目录以确定待传输的第一原始文件。
26.第一确定模块,用于依据第一原始文件所占存储空间和/或所包含的文件数量确定目标处理方式。
27.处理模块,用于根据目标处理方式对第一原始文件进行处理,得到待传输的第一子文件;其中,对第一原始文件的处理包括:拆分处理、合并处理。
28.第二确定模块,用于通过注册中心查第二客户端所配置的在线的节点,并从在线的节点中确定第二节点。
29.收发模块,用于将第一子文件和目标处理方式传输至第二节点。
30.再一方面,本技术实施例提供了一种电子设备,该电子设备包括:
31.存储器、处理器及存储在存储器上的计算机程序,处理器执行计算机程序以实现本技术实施例的上述两个方面所示方法的步骤。
32.本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算
机程序被处理器执行时实现本技术实施例的上述两个方面所示方法的步骤。
33.本技术实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现本技术实施例的上述两个方面所示方法的步骤。
34.本技术实施例提供的技术方案带来的有益效果是:
35.本技术实施例提供了一种文件传输方法,该方法包括:响应于携带传输参数的传输指令,遍历第一客户端所配置的第一共享目录以确定待传输的第一原始文件,并确定执行接收操作的第二客户端所配置的第二节点。根据第一原始文件的大小(如所占存储空间,文件数量)确定对第一原始文件的目标处理方式,以便处理第一原始文件,从而得到便于传输的第一子文件;然后,将第一子文件传输至第二节点。本技术实施例所示的方法在传输之前,通过确定对待传输的文件(如第一原始文件)的处理方式,并进行相应的处理,从而得到便于传输的子文件(如第一子文件),以进行传输操作。如,将海量小文件进行合并处理,对超大文件进行拆分处理。因此,即便待传输的文件为海量的小文件或者超大文件,都能够通过该方案,高效地传输至目标客户端。
附图说明
36.为了更清楚地说明本技术实施例中的技术方案,下面将对本技术实施例描述中所需要使用的附图作简单地介绍。
37.图1为本技术实施例提供的一种文件传输系统的架构示意图;
38.图2为本技术实施例提供的一种文件传输方法的流程示意图;
39.图3为本技术实施例提供的一种文件传输方法的应用场景示意图;
40.图4a为本技术实施例提供的一种文件传输装置的结构示意图;
41.图4b为本技术实施例提供的另一种文件传输装置的结构示意图;
42.图5为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
43.下面结合本技术中的附图描述本技术的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本技术实施例的技术方案的示例性描述,对本技术实施例的技术方案不构成限制。
44.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“a和/或b”可以实现为“a”,或者实现为“b”,或者实现为“a和b”。
45.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
46.承接背景技术,现有的文件传输系统一般采取串行的传输方式和并行的传输方式进行文件传输。其中,串行的传输方式,就是将待传输的多个文件依次进行传输,即一次传输一个文件,直至传输完所有文件。并行的传输方式,就是允许将待传输的多个文件中至少两个文件同时传输,或者所有文件同时传输。然而,对于海量小文件,串行的传输方式比较浪费时间,或者串行的传输方式则对带宽提出要求。对于单个超大文件,不论是串行传输方式还是并行的传输方式都会对带宽提出较高的要求。
47.为了解决上述背景技术中存在的至少一个技术问题,本技术实施例提供了一种文件传输方法。该方法通过在第一客户端的第一节点上对待传输的原始文件进行拆分或合并处理,从而得到便于传输的子文件,并进行传输。第二客户端的第二节点在接收到待传输子文件之后,根据接收到的处理方式子文件执行整理操作,得到原始文件。该方法在面对包括海量小文件的原始文件,或者包括单个超大文件的原始文件时,都能够实现高效传输的目的。
48.本技术实施例提供的文件传输方法可应用于配置于客户端的分布式集中任一节点,即分布式集中的服务器。其中,该客户端可以为第一客户端、第二客户端或者第三客户端。其中,第一客户端向第二客户端传输文件,第三客户端向第一客户端传输文件。其中,每个服务器提供了较大的空间进行文件存储操作。
49.可选地,本技术实施例提供的方法可以实现为一项独立的应用程序或者是一项应用程序的功能模块/插件,比如,该应用程序可以是专门的文件传输的软件或者应用程序,通过该应用程序即可以实现文件传输过程中需要的针对原始文件的处理操作得到子文件,以及针对子文件的整理操作得到原始文件。
50.下面通过对几个示例性实施方式的描述,对本技术实施例的技术方案以及本技术的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
51.图1示出了本技术实施例提供的一种文件传输系统的架构示意图,如图1所示,文件传输系统10可以包括如下模块:信息录入中心110、注册中心120和管控中心130。
52.信息录入中心110,用于录入客户端的配置信息。具体地,该客户端的配置信息可以包括:客户端的标识,传输关系权限,共享目录;该客户端配置有分布式集,该客户端的配置信息还可以包括:分布式集的访问地址,该分布式集中为该客户端服务的节点的信息,如节点的数量、节点的标识,每个节点对共享目录的访问权限,每个节点的传输方式。
53.可选地,信息录入模块还用于录入节点的配置信息。具体地,节点的配置信息包括:该节点所属客户端的标识,节点的ip地址和端口号,节点的标识等。
54.可选地,信息录入模块110还包括将录入的客户端的配置信息,以及节点的配置信息进行存储。
55.注册中心120,用于根据接收的注册消息,确定节点为在线的节点。
56.可选地,文件传输系统10包括对多个区域的管理,并在每个区域都配置有注册中心。其中,每个区域的注册中心负责管理相应区域的节点的注册事务。具体地,配置于客户端1的一个节点a为例,节点a启动之后,向文件传输系统发送请求消息,以获取与节点a相关的配置信息。其中,该相关的配置信息包括:客户端1的标识;关联的注册中心的信息;客户
端1的共享目录;访问权限,如节点a对共享目录的可读和/或可写的权限;传输权限,单向传输文件的权限和双向传输文件的权限,如:客户端1向客户端2有传输文件的权限,但是客户端2不能向客户端1传输文件的权限,可以称作单向传输文件的权限;传输方式,包括一对一、一对多两种方式,如节点a在执行传输操作时,是选择对一个节点进行传输,还是对多个节点进行传输。另外,还包括节点a的ip地址和端口号。
57.其中,注册中心120根据客户端的标识,将节点进行有序整理。可选地,生成每个客户端相应的在线列表,该在线列表中包括该客户端所配置的在线的节点。
58.接下来,节点a根据获取的节点a的相关的配置信息向相应区域的注册中心发送注册消息。相应区域的注册中心在接收到节点a的注册消息之后,实施注册操作,如登记节点a的相关的配置信息,并设置该节点a的状态为在线状态。
59.可选地,相应区域的注册中心120和节点a之间还可以建立心跳机制,以便确认节点a是否在线,以及确定节点a的工作状态。具体地,该工作状态为忙碌状态,空闲状态。其中,节点a可以为第一节点、第二节点或第三节点。客户端1可以为第一客户端、第二客户端或者第三客户端
60.可选地,若客户端所配置的至少一个节点成为在线的节点,说明该客户端的状态为在线,那么可以在在线的客户端之间实施传输文件的操作。
61.示例性地,以第一客户端和第二客户端为例。若第一客户端所配置的至少一个节点为在线的节点,则第一客户端的状态为在线,以及第二客户端所配置的至少一个节点为在线的节点,则第二客户端的状态为在线,那么可以在第一客户端和第二客户端之间建立传输文件的过程。如,向第一客户端发送携带第二客户端的标识的传输指令,以确定向第二客户端传输文件。
62.管控中心130,用于管控传输过程。可选地,第一节点在接收到传输指令之后,还包括向管控中心发送通知消息;第一节点在向第二节点传输待传输子文件时,还包括向管控模块发送通知消息。管控中心在接收到通知消息之后,根据通知消息中携带的内容进行展示,并接收用户基于展示的内容输入的操控指令。
63.为了能够理解文件传输系统10如何参与文件传输的过程,本技术实施例还提供了一种具体的示例。如图1所示,文件生产者a对应第一客户端,文件消费者b对应第二客户端。
64.本示例中,文件生产者a包括生成如文件1类型文件的功能,并且配置有多个服务器。文件消费者b向文件传输系统订阅了该文件1,一旦文件生产者a中有新的文件1产生时,文件生产者a就向文件消费者b发送文件1。因此,文件消费者b中有很多的历史文件1。
65.第一阶段,服务器的注册阶段。
66.文件生产者a所配置的服务器启动之后,向文件传输系统的注册中心发送注册信息,以注册成为在线的服务器。同理,对于文件消费者b的服务器亦如此。
67.第二阶段,确定在线的服务器。
68.文件生产者a在生成了新的文件1之后,即向文件传输系统的注册中心获取订阅该文件1的文件消费者的配置信息,如文件消费者b的在线的服务器的信息。
69.其中,文件消费者a在获取订阅消息之前,确定与文件消费者b之间的传输权限是否存在。如,文件消费者a是否配置向文件传输者b传输文件的权限。若有,则获取在线的服务器的信息。
70.文件生产者a根据文件消费者b的在线的服务器的信息,确定需要执行接收操作的服务器。文件生产者a的任一在线的服务器与文件消费者b的在线的服务器创建连接。
71.第三阶段,传输文件。
72.文件生产者a将待传输的文件1进行处理。文件生产者a在传输文件时,还可以向文件传输系统的管控中心发送传输过程的信息。如:当前传输的原始文件的名称、所占存储空间,所包含文件的总数量,以及当前已传输至文件消费者的子文件,以及传输进度。文件传输系统的管控中心接收到上述数据之后,进行展示。
73.图2示出了本技术实施例提供的一种文件传输方法的流程示意图。如图2所示,该方法包括步骤s210~s250。
74.s210,响应于携带传输参数的传输指令,遍历第一客户端所配置的第一共享目录以确定待传输的第一原始文件。
75.其中,第一客户端所配置的节点为分布式集中的节点,该分布式集包括至少一个服务器,而每个节点即为一个服务器。其中,配置于第一客户端的节点共享一个存储文件的目录,即第一共享目录。
76.在第一节点启动时,第一客户端与第一节点建立网络连接。通过建立的网络连接,第一客户端可以发送传输指令至第一节点。
77.可选地,用户可以设置每个第一节点对第一共享目录中任一子目录的访问权限。该访问权限包括读取子目录中文件的读权限,以及向子目录中写入文件的写权限。
78.其中,根据传输参数中携带的原始文件的标识遍历第一客户端所配置的第一共享目录之后,可确定第一原始文件所对应的存储路径。
79.可选地,第一原始文件可以为一个文件夹,该文件夹中包括多个子文件或者子文件夹;第一原始文件还可以为单个文件;第一原始文件还可以为文件夹和文件的组合。可选地,该单个文件可以为经过压缩处理的文件,如以“.zip”为后缀的文件,也可以为未经压缩处理的普通文件,如以“.txt”、“.gif”为后缀的文件。
80.s220,依据第一原始文件所占存储空间和/或所包含的文件数量确定目标处理方式。
81.s230,根据目标处理方式对第一原始文件进行处理,得到待传输的第一子文件。
82.其中,对第一原始文件的处理包括:拆分处理、合并处理。也即,针对第一原始文件的处理方式包括合并处理方式、拆分处理方式。
83.可选地,第一子文件的数量为一个或者一个以上。
84.可选地,该存储空间表示以静态形式进行存储时所占用的存储空间。
85.s240,通过注册中心查第二客户端所配置的在线的节点,并从在线的节点中确定第二节点。
86.其中,该注册中心可以为上述实施例提供的注册中心120。
87.可选地,传输参数中携带第二客户端的标识。向注册中心发送携带第二客户端的标识的请求,响应于注册中心反馈的第二客户端相应的在线列表,将在线列表中工作状态为空闲状态的相应节点确定为第二节点。
88.s250,将第一子文件和目标处理方式传输至第二节点。
89.其中,将目标处理方式传输至第二节点,也是便于第二客户端的第二节点根据该
目标处理方式对接收的第一子文件进行整理操作,以得到第一原始文件。可选地,每种目标处理方式还包括相应的标识,如:拆分处理用数字“1”标识,合并处理用数字“2”标识。
90.本技术实施例提供了一种文件传输方法,该方法通过分析第一原始文件的大小(如所占存储空间,文件数量)确定对第一原始文件的目标处理方式,以便根据目标处理方式处理第一原始文件,从而得到便于传输的第一子文件;然后,将第一子文件和目标处理方式传输至第二节点。其中,第二节点可以根据目标处理方式对接收的第一子文件进行整理操作,得到第一原始文件。本技术实施例所示的方法在传输之前,通过确定对待传输的文件(如第一原始文件)的处理方式,并进行相应的处理,从而得到便于传输的子文件(如第一子文件),以进行传输操作。即便待传输的文件为海量的小文件或者超大文件,都能够通过该方案,高效地传输至目标客户端。
91.在接收到传输指令之后,该传输指令中还包括上传的目的客户端的信息,即第二客户端的信息。但是第二客户端为终端上的应用或者插件,不能执行具体的接收操作,因此,本技术实施例还提供了如何确定执行接收操作的第二节点的具体过程。
92.在一个可选的实施例中,通过注册中心查第二客户端所配置的在线的节点,并从在线的节点中确定第二节点,具体可以包括:
93.向注册中心发送携带第二客户端的标识的请求,其中,传输参数中携带第二客户端的标识;响应于注册中心反馈的第二客户端相应的在线列表,将在线列表中工作状态为空闲状态的相应节点确定为第二节点。
94.可选地,注册中心包括每一客户端相应的在线列表,该在线列表以相应的客户端的标识来进行标识。如,注册中心中包括第一客户端、第二客户端、第三客户端相应的在线列表。其中,第一节点为第一客户端相应的在线列表中的节点;第二节点为第二客户端相应的在线列表中的节点;第三节点为第三客户端相应的在线列表中的节点。
95.本技术实施例还提供了一种实施例,该实施例展示了在线的节点的生成过程。
96.在一个可选的实施例中,第一节点在启动之后,进入初始化阶段。
97.向注册中心发送携带相关的配置信息的注册消息,以便成为在线的节点。
98.具体地,任一节点在启动之后,向信息录入中心获取相关的配置信息,该配置信息可以包括该启动的节点的配置信息,和/或,相应客户端的配置信息。由于节点启动之后,表示该节点处于在线状态,向注册中心发送一个消息只是为了告知注册中心当前的状态。节点向注册中心发送携带相关的配置信息之后,注册中心缓存该节点发送的相关的配置信息,并记录节点的状态为在线的状态。
99.可选地,注册消息还携带相应客户端的标识。注册中心在接收到注册消息之后,还可以根据相应客户端的标识,将该节点收编至相应客户端相应的在线列表中。
100.在背景技术中,待传输的文件可能为类似由银行业务所产生的发票类文件,这类文件涉及到用户的信息安全。因此,出于对传输过程的安全性的考虑,还设置了客户端之间的传输权限,以及节点的访问权限,以避免文件被泄露。
101.在一个可选的实施例中,在遍历第一客户端所配置的第一共享目录之前,该方法还包括:
102.获取第一认证结果,第一认证结果表征第一节点是否配置有对第一共享目录的可读权限;根据第二客户端的标识获取第二认证结果;第二认证结果表征第一客户端是否配
置对第二客户端所配置的第二共享目录的可写权限。
103.可选地,第一节点的配置信息中,记录有第一客户端的传输权限的信息。具体地,根据记录的传输权限的信息确定第一客户端是否对第二客户端所配置的第二共享目录的可写权限。
104.可选地,若第一认证结果为配置有可读权限,且第二认证结果为配置有可写权限,遍历第一客户端所配置的第一共享目录。
105.可选地,若第一认证结果为未配置有可读权限,则第一节点执行完毕。而第一客户端可以向相应的在线列表中其他节点发送传输指令,以便重启文件传输操作。
106.可选地,若第二认证结果为未配置有可写权限,确定不能进行文件传输的操作,即无需扫描第一共享目录,以及获取第二客户端所配置的在线的节点。
107.接下来将阐述如何根据第一原始文件所占存储空间和/或所包含的文件数量确定目标处理方式。
108.在一个可选的实施例中,依据第一原始文件所占存储空间和/或所包含的文件数量确定目标处理方式,具体包括:
109.计算第一原始文件中文件的总数量和计算第一原始文件所占的总存储空间。
110.若总数量大于第一阈值,确定目标处理方式为合并处理方式;若总数量小于或等于第一阈值,且若总存储空间大于第二阈值,确定目标处理方式为拆分处理方式;
111.或者,
112.若总存储空间大于第二阈值,确定目标处理方式为拆分处理方式;若总存储空间小于或等于第二阈值,且若总数量大于第一阈值,确定目标处理方式为合并处理方式。
113.可选地,根据传输参数中携带的存储信息确定第一原始文件在第一共享目录中的存储路径。扫描第一共享目录中的存储路径,可以得到该存储路径对应的文件的数量,每个文件的属性(包括相应文件所占的存储空间)信息,从而确定第一原始文件所占的存储空间,以及包含文件的数量。
114.可选地,扫描第一共享目录中的存储路径具体可以包括:扫描存储路径的第一层路径,该第一层路径中可以包括单个文件和/或文件夹;针对单个文件,进行数量统计,和/或,所占存储空间统计;针对文件夹,获取对应每一文件夹内部的第二层路径,以统计第一层路径方式去统计第二层路径中的文件信息。直至进入最后一层路径,确定统计完毕。即可得到第一原始文件的总数量和/或所占总存储空间。
115.其中,在第一原始文件包括的文件数量达到第一阈值时,是需要进行合并的。如,第一原始文件为海量的发票文件。
116.在确定目标处理方式之后,接下来将根据目标处理方式进行具体的处理。
117.在一个可选实施例中,根据目标处理方式对第一原始文件进行处理,得到待传输的第一子文件,具体可以包括步骤sa1和sa2:
118.sa1,若目标处理方式为合并处理方式,按照预设的单位文件数量对第一原始文件所包含的多个文件进行合并处理,得到至少一个第一子文件;其中,每一第一子文件配置有与合并处理的顺序相应的文件序号。
119.可选地,在进行合并处理时,从第一原始文件的存储路径中的第一层路径开始:针对第一层路径中的单个文件,按照预设的单位文件数量进行合并,得到至少一个合并文件,
并为该至少一个合并文件配置文件序号,如“第一层&01”、“第一层&02”等;针对第一层路径中的文件夹,获取对应每一文件夹内部的第二层路径,并针对第二层路径下的文件和/或文件夹执行如第一层路径中文件和/或文件夹的处理。其中,针对文件夹中单个文件的文件序号,可选的定义方式为:“第一层&第一层的文件夹01&第二层&01”。最后,得到每一层路径下的合并文件。
120.可选地,该合并处理可以为压缩处理。该合并文件为对多个文件进行压缩处理所得的压缩包。
121.可选地,在进行合并处理时,还可以根据待合并文件的总存储空间来判断是否要进行合并处理。如,设置每一合并文件的合并阈值,若待合并文件的总存储空间不大于该合并阈值,则进行合并处理。若单个文件所占存储空间大于该合并阈值,则去掉至少一个文件以使待合并的文件的总存储空间不大于合并阈值,再次进行合并处理。
122.可选地,在进行合并处理时,第一原始文件为多个批次的文件,那么在合并时,还可以优先按照批次进行合并处理,其次再按照合并阈值进行合并处理。
123.sa2,若目标处理方式为拆分处理方式,按照预设的单位存储空间对第一原始文件所包含的多个文件进行拆分处理,得到至少一个第一子文件;其中,每一第一子文件配置有与拆分处理的顺序相应的文件序号。
124.一般而言,只有压缩包的文件通常会比较大。
125.可选地,在进行拆分处理时,从第一原始文件的存储路径中的第一层路径开始:针对第一层路径中的单个文件,检查每个文件所占存储空间是否不小于该预设的单位存储空间,若检查结果为不小于,则继续判断相应文件是否为压缩文件,若为压缩文件则按照预设的单位存储空间对相应文件进行拆分处理,经过拆分处理,得到至少一个拆分文件,并为该至少一个拆分文件配置文件序号,如:“第一层&文件名1&01
”…“
第一层&文件名1&0n”、“第一层&文件名2&01”、“第一层&文件名2&02”;针对第一层路径中的文件夹,获取对应每一文件夹内部的第二层路径,并针对第二层路径下的文件和/或文件夹执行如第一层路径中文件和/或文件夹的处理。其中,文件序号中的“文件名1”、“文件名2”可以为临时的名称,也可以是原始的文件名。
126.可选地,该拆分处理为解压缩处理,该拆分文件为对单个文件进行解压缩之后,按照预设的单位存储空间进行压缩处理所得的压缩文件。
127.可选地,若第一原始文件中的每个文件所占存储空间小于预设的单位存储空间,则可以不进行拆分处理。
128.在具体实施时,可以根据第一原始文件所占总存储空间,和/或第一原始文件所包含文件的总数量来确定是否处理第一原始文件。
129.可选地,若总数量不大于第一阈值,且总存储空间不大于第二阈值,可以对第一原始文件不进行处理,并直接传输。
130.不论是拆分处理还是合并处理,都会产生至少一个文件。接下来将阐述如何传输至少一个文件。
131.在一个可选的实施例中,将第一子文件传输至第二节点,具体可以包括:
132.按照相应的文件序号,依次将每一第一子文件添加至缓存队列;依次从缓存队列中获取第一子文件,并传输至第二节点。
133.具体地,设置缓存队列。每得到一个第一子文件,根据第一子文件的文件序号将该第一子文件添加至该缓存队列中。在传输接口空闲时,从缓存队列中获取第一子文件,发送至第二节点。
134.可选地,若第一节点的传输方式被配置为一对多传输,则可以从第二客户端的在线的节点中,选择多个第二节点,并将缓存队列中的第一子文件分别传输至多个第二节点中。
135.上述实施例阐述了在第一客户端为发送对象时,如何进行文件处理和发送。当第一客户端为原始文件的接收对象时,如何进行接收的文件进行整理也是一个重点。本技术实施例还提供了一种可选的实施例,来阐述接收和整理的过程。
136.在一个可选的实施例中,若接收到第三节点发送的第二子文件,该方法还包括:
137.若当前节点为执行整理操作的节点,统计所有的第二子文件;
138.其中,第三节点为第三客户端的节点。可选地,若当前节点为执行整理操作的节点,从其他的第三节点中获取接收的第二子文件,包括从其他的第三节点中获取接收到的第二子文件相应的目标处理方式。该目标处理方式为拆分处理方式,或者合并处理方式。
139.若第二子文件相应的目标处理方式为合并处理方式,依照每一第二子文件相应的文件序号确定每一第二子文件所处的路径层次,并依据该路径层次进行组合,得到由包括预设数量的文件组成的第二原始文件。
140.可选地,将文件序号中带有“第一层”内容的第二子文件进行如下处理:分别对每个第二子文件进行解压缩处理,得到第一层路径下的单个文件;将文件序号中带有“第一层”、“第一层的文件夹y”内容的第二子文件进行如下处理:分别进行压缩处理,并合并至一个文件夹中,该文件夹的文件名为“文件夹y”。将第一层路径下的单个文件和第一层路径下的文件夹进行合并,得到第一层路径下的文件内容。对于其他路径层的处理方式可以参照第一层路径中文件或者文件夹的处理方式。
141.若第二子文件相应的目标处理方式为拆分处理方式,依照每一第二子文件相应的文件序号确定每一第二子文件所处的路径层次,并依据路径层次进行合并处理,得到第二原始文件。
142.可选地,将文件序号中带有“第一层”以及“文件名x”的第二子文件进行如下处理:分别进行解压缩处理,将解压缩处理得到的文件进行合并,并进行压缩处理,得到压缩文件,并配置该压缩文件的名称为该“文件名x”。其中,该“文件名x”为原始的文件名称。对于每一子文件进行上述处理,从而得到第一层路径下的所有的文件和/或文件夹。对于其他路径层的处理方式也可以按照第一层路径中文件或者文件夹的处理方式。将所有路径中的文件确定为第二原始文件。
143.本技术实施例适用于任一文件传输的场景,比如:海量小文件的传输场景,超大文件的传输场景,或者普通文件的传输场景。而且本技术实施例提供的方案对于海量小文件或者超大文件的传输效率要比现有技术要高很多。为了更清楚地理解整个传输过程,本技术实施例还提供了一个具体的示例来进行说明。
144.本示例中,以应用a向应用b传输文件为具体示例。其中,应用a配置有节点a1、节点a2

节点an,应用b配置有节点b1、节点b2

节点bm。如图3所示的文件传输方法的应用场景示意图,本示例包括步骤s1001~s1010。
145.s1001,节点a1实施注册。
146.如,节点a1启动之后,向注册中心发送注册消息。注册中心接收到节点a1的信息之后,进行记录。并将节点a1编入应用a的在线列表中。
147.另外,节点b1、b2启动之后,也需要向注册中心发送注册消息。注册中心在接收到节点b1、节点b2发送的注册消息之后,也进行记录,并将节点b1和节点b2编入应用b的在线列表中。
148.s1002,节点a1接收传输指令。
149.节点a1接收到应用a发送的传输指令,根据传输指令中携带的存储信息扫描应用a所配置的共享目录,得到待传输的原始文件。
150.s1003,节点a1处理原始文件,得到多个子文件。
151.计算原始文件所包含文件的总数量,以及原始文件所占的总存储空间。若总数量大于第一阈值,则确定原始文件属于海量文件的类型,若总存储空间大于第二阈值,则确定原始文件属于超大文件的类型。
152.若原始文件属于海量文件的类型,对原始文件实施合并处理。具体地,按照预设的单位数量进行分批次压缩。
153.若原始文件属于超大文件的类型,对原始文件实施拆分处理。具体地,按照预设的单位存储空间进行分批次拆分,再进行压缩。
154.s1004,节点a1基于缓存队列缓存处理所得的子文件。
155.s1005,节点a1确定节点b1、节点b2
156.向注册中心发送请求,以获取应用b相应的在线列表,从应用b相应的在线列表中获取到节点b1、节点b2为在线的节点。
157.节点a1和节点b1和节点b2创建网络连接。
158.s1006,节点a1向节点b1、节点b2传输文件。
159.节点a1从缓存队列中获取子文件,并传输至节点b1和节点b2。
160.s1007,节点a1向应用a反馈传输结果。
161.如,节点a1在传输完毕之后,向应用a反馈“传输成功”的消息。
162.至此,节点a1端完成了传输任务。
163.图4a示出了本技术实施例提供的一种文件传输装置的结构示意图。如图4a所示,该装置400包括:
164.扫描模块410,用于响应于携带传输参数的传输指令,遍历第一客户端所配置的第一共享目录以确定待传输的第一原始文件;传输参数中包括第二客户端的标识。
165.第一确定模块420,用于依据第一原始文件所占存储空间和/或所包含的文件数量确定目标处理方式。
166.处理模块430,用于根据目标处理方式对第一原始文件进行处理,得到待传输的第一子文件;其中,对第一原始文件的处理包括:拆分处理、合并处理。
167.第二确定模块440,用于通过注册中心查第二客户端所配置的在线的节点,并从在线的节点中确定第二节点。
168.收发模块450,用于将第一子文件和目标处理方式传输至第二节点。
169.可选地,第一确定模块420在依据第一原始文件所占存储空间和/或所包含的文件
数量确定目标处理方式中,具体用于:
170.计算第一原始文件中文件的总数量,和/或,计算第一原始文件所占的总存储空间;
171.若总数量大于第一阈值,确定目标处理方式为合并处理方式;若总数量小于或等于第一阈值,且若总存储空间大于第二阈值,确定目标处理方式为拆分处理方式。
172.或者,
173.若总存储空间大于第二阈值,确定目标处理方式为拆分处理方式;若总存储空间小于或等于第二阈值,且若总数量大于第一阈值,确定目标处理方式为合并处理方式。
174.可选地,处理模块430在根据目标处理方式对第一原始文件进行处理,得到待传输的第一子文件中,具体用于:
175.若目标处理方式为合并处理方式,按照预设的单位文件数量对第一原始文件所包含的多个文件进行合并处理,得到至少一个第一子文件;其中,每一第一子文件配置有与合并处理的顺序相应的文件序号;若目标处理方式为拆分处理方式,按照预设的单位存储空间对第一原始文件所包含的多个文件进行拆分处理,得到至少一个第一子文件;其中,每一第一子文件配置有与拆分处理的顺序相应的文件序号。
176.可选地,第二确定模块440在通过注册中心查第二客户端所配置的在线的节点,并从在线的节点中确定第二节点中,具体用于:
177.向注册中心发送携带第二客户端的标识的请求,其中,传输参数中携带第二客户端的标识;响应于注册中心反馈的第二客户端相应的在线列表,将在线列表中工作状态为空闲状态的相应节点确定为第二节点。
178.可选地,如图4b所示,装置400还包括验证模块460,验证模块460在遍历第一客户端所配置的第一共享目录之前用于:
179.获取第一认证结果,第一认证结果表征第一节点是否配置有对第一共享目录的可读权限。
180.根据第二客户端的标识获取第二认证结果;第二认证结果表征第一客户端是否配置对第二客户端所配置的第二共享目录的可写权限;其中,若第一认证结果为配置有可读权限,且第二认证结果为配置有可写权限,遍历第一客户端所配置的第一共享目录。
181.可选地,装置400还包括注册模块470,注册模块470在初始化阶段,具体用于:
182.向注册中心发送携带相关的配置信息的注册消息,以便成为在线的节点;注册消息还携带第一客户端的标识。
183.可选地,若接收到第三节点发送的第二子文件,第三节点为第三客户端所配置的节点;处理模块430还可以用于:
184.若当前节点为执行整理操作的节点,统计所有的第二子文件。
185.若第二子文件相应的目标处理方式为合并处理方式,依照每一第二子文件相应的文件序号确定每一第二子文件所处的路径层次,并依据路径层次进行重新组合,得到由包括预设数量的文件组成的第二原始文件;若第二子文件相应的目标处理方式为拆分处理方式,依照每一第二子文件相应的文件序号确定每一第二子文件所处的路径层次,并依据路径层次进行合并处理,得到第二原始文件。
186.本技术实施例的装置可执行本技术实施例所提供的方法,其实现原理相类似,本
申请各实施例的装置中的各模块所执行的动作是与本技术各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
187.本技术实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现文件传输方法的步骤,与相关技术相比可实现:即便待传输的文件为海量的小文件或者超大文件,都能够通过该方案,高效进行文件传输。
188.在一个可选实施例中提供了一种电子设备,如图5所示,图5所示的电子设备5000包括:处理器5001和存储器5003。其中,处理器5001和存储器5003相连,如通过总线5002相连。可选地,电子设备5000还可以包括收发器5004,收发器5004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器5004不限于一个,该电子设备5000的结构并不构成对本技术实施例的限定。
189.处理器5001可以是cpu(central processing unit,中央处理器),通用处理器,dsp(digital signal processor,数据信号处理器),asic(application specific integrated circuit,专用集成电路),fpga(field programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器5001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
190.总线5002可包括一通路,在上述组件之间传送信息。总线5002可以是pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线5002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
191.存储器5003可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random access memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read only memory,电可擦可编程只读存储器)、cd-rom(compact disc read only memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
192.存储器5003用于存储执行本技术实施例的计算机程序,并由处理器5001来控制执行。处理器5001用于执行存储器5003中存储的计算机程序,以实现前述方法实施例所示的步骤。
193.其中,电子设备包括但不限于:服务器。
194.本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
195.本技术实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
196.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除图示或文字描述以外的顺序实施。
197.应该理解的是,虽然本技术实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本技术实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本技术实施例对此不限制。
198.以上所述仅是本技术部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术的方案技术构思的前提下,采用基于本技术技术思想的其他类似实施手段,同样属于本技术实施例的保护范畴。

技术特征:


1.一种文件传输方法,其特征在于,所述方法包括:响应于携带传输参数的传输指令,遍历第一客户端所配置的第一共享目录确定待传输的第一原始文件;所述传输参数中包括第二客户端的标识;依据所述第一原始文件所占存储空间和/或所包含的文件数量确定目标处理方式;根据所述目标处理方式对所述第一原始文件进行处理,得到待传输的第一子文件;其中,对所述第一原始文件的处理包括:拆分处理、合并处理;通过注册中心查所述第二客户端所配置的在线的节点,并从所述在线的节点中确定第二节点;将所述第一子文件和所述目标处理方式传输至所述第二节点。2.根据权利要求1所述的方法,其特征在于,所述依据所述第一原始文件所占存储空间和/或所包含的文件数量确定目标处理方式,包括:计算所述第一原始文件中文件的总数量和所述第一原始文件所占的总存储空间;若所述总数量大于第一阈值,确定所述目标处理方式为合并处理方式;若所述总数量小于或等于所述第一阈值,且若所述总存储空间大于第二阈值,确定所述目标处理方式为拆分处理方式。3.根据权利要求2所述的方法,其特征在于,在所述计算所述第一原始文件中文件的总数量和所述第一原始文件所占的总存储空间的步骤之后,所述方法还包括:若所述总存储空间大于第二阈值,确定所述目标处理方式为拆分处理方式;若所述总存储空间小于或等于所述第二阈值,且若所述总数量大于所述第一阈值,确定所述目标处理方式为合并处理方式。4.根据权利要求3所述的方法,其特征在于,所述根据所述目标处理方式对所述第一原始文件进行处理,得到待传输的第一子文件,包括:若目标处理方式为合并处理方式,按照预设的单位文件数量对所述第一原始文件所包含的多个文件进行合并处理,得到所述至少一个第一子文件;每一所述第一子文件配置有与合并处理的顺序相应的文件序号;若目标处理方式为拆分处理方式,按照预设的单位存储空间对所述第一原始文件所包含的多个文件进行拆分处理,得到所述至少一个第一子文件;每一所述第一子文件配置有与拆分处理的顺序相应的文件序号。5.根据权利要求1所述的方法,其特征在于,所述通过注册中心查第二客户端所配置的在线的节点,并从所述在线的节点中确定第二节点,包括:向所述注册中心发送携带第二客户端的标识的请求;所述传输参数中携带所述第二客户端的标识;响应于所述注册中心反馈的所述第二客户端相应的在线列表,将所述在线列表中工作状态为空闲状态的相应节点确定为所述第二节点。6.根据权利要求1所述的方法,其特征在于,在遍历第一客户端所配置的第一共享目录之前,所述方法还包括:获取第一认证结果;所述第一认证结果表征所述第一节点是否配置有对第一共享目录的可读权限;根据所述第二客户端的标识获取第二认证结果;所述第二认证结果表征所述第一客户
端是否配置对所述第二客户端所配置的第二共享目录的可写权限;其中,若所述第一认证结果为配置有可读权限,且所述第二认证结果为配置有可写权限,遍历所述第一客户端所配置的第一共享目录。7.根据权利要求1所述的方法,其特征在于,若接收到第三节点发送的第二子文件,所述第三节点为第三客户端所配置的节点;所述方法还包括:若当前节点为执行整理操作的节点,统计所有的第二子文件;若所述第二子文件相应的目标处理方式为合并处理方式,依照每一第二子文件相应的文件序号确定每一第二子文件所处的路径层次,并依据所述路径层次进行重新组合,得到由包括预设数量的文件组成的第二原始文件;若所述第二子文件相应的目标处理方式为拆分处理方式,依照每一第二子文件相应的文件序号确定每一第二子文件所处的路径层次,并依据所述路径层次进行合并处理,得到所述第二原始文件。8.一种文件传输装置,其特征在于,所述装置包括:扫描模块,用于响应于携带传输参数的传输指令,遍历第一客户端所配置的第一共享目录以确定待传输的第一原始文件;第一确定模块,用于依据所述第一原始文件所占存储空间和/或所包含的文件数量确定目标处理方式;处理模块,用于根据所述目标处理方式对所述第一原始文件进行处理,得到待传输的第一子文件;其中,对所述第一原始文件的处理包括:拆分处理、合并处理;第二确定模块,用于通过注册中心查第二客户端所配置的在线的节点,并从所述在线的节点中确定第二节点;收发模块,用于将所述第一子文件和所述目标处理方式传输至所述第二节点。9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-7任一项所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。11.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。

技术总结


本申请实施例提供了一种文件传输方法、装置、电子设备以及相关产品,涉及数据传输领域。该方法包括:响应于携带传输参数的传输指令,遍历第一客户端所配置的第一共享目录以确定待传输的第一原始文件,并确定执行接收操作的第二客户端所配置的第二节点。根据第一原始文件的大小确定目标处理方式,以便处理第一原始文件,并得到便于传输的第一子文件,并进行传输。本申请实施例所示的方法在传输之前,通过确定对待传输的文件的处理方式,并通过相应的处理得到便于传输的子文件,因此即便待传输的文件为海量的小文件或者超大文件,都能够通过该方案,高效进行文件传输。高效进行文件传输。高效进行文件传输。


技术研发人员:

高亚龙

受保护的技术使用者:

中电金信软件有限公司

技术研发日:

2022.07.26

技术公布日:

2022/11/18

本文发布于:2022-11-26 17:29:56,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/2/5606.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:文件   节点   在线   客户端
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图