一种文件下载方法及装置、存储介质及电子设备与流程

文档序号:31458407发布日期:2022-09-07 15:17阅读:66来源:国知局
一种文件下载方法及装置、存储介质及电子设备与流程

1.本发明涉及数据处理技术领域,特别涉及一种文件下载方法及装置、存储介质及电子设备。


背景技术:

2.目前,为了提高系统设备间的文件传输效率,系统设备间通常采用文件传输协议(file transferprotocol,ftp)进行文件传输。具体是在ftp客户端连接到ftp服务器后,从ftp服务器中获取远程目录的文件列表,并从服务器下载列表中所有文件。
3.现有技术中,为了提高文件下载效率,通常设置有多个ftp客户端同时从ftp服务器中下载文件,但是在多ftp客户端的情况下,容易出现多个客户端同时下载一个远程文件的情况,会导致文件被多个节点重复处理,从而产生文件被覆盖、或i/o出错等问题。


技术实现要素:

4.本发明所要解决的技术问题是提供一种文件下载方法,能够避免同一文件同时被多个ftp客户端重复下载而产生的问题。
5.本发明还提供了一种文件下载装置,用以保证上述方法在实际中的实现及应用。
6.一种文件下载方法,应用于ftp客户端集群中的目标ftp客户端,所述方法包括:
7.响应于文件下载指令,确定所述ftp客户端集群的文件记录表中的各个备选文件信息记录,所述文件记录表根据所述ftp服务器中的下载目录文件列表得到,每个所述备选文件信息记录为处于待下载状态的文件信息记录;
8.在各个所述备选文件信息记录中选取当前未被锁定的目标文件信息记录;
9.应用所述目标ftp客户端对应的记录锁对所述目标文件信息记录进行锁定,并从ftp服务器下载所述目标文件信息记录对应的文件。
10.上述的方法,可选的,所述确定所述ftp客户端集群的文件记录表中的各个备选文件信息记录,包括:
11.获取所述ftp客户端集群的文件记录表;
12.确定所述文件记录表中的每个文件信息记录的状态;
13.对于每个所述文件信息记录,在所述文件信息记录的状态为待下载状态的情况下,将所述文件信息记录确定为备选文件信息。
14.上述的方法,可选的,所述获取所述ftp客户端集群的文件记录表,包括:
15.获取ftp服务器的参数;
16.在根据所述ftp服务器的参数与所述ftp服务器建立通信连接后,通过所述通信连接向所述ftp服务器发送第一指令,以从所述ftp服务器获得所述ftp服务器的下载目录文件列表;
17.根据所述下载目录文件列表中的各文件的文件信息获得所述ftp客户端的文件记录表。
18.上述的方法,可选的,所述在各个所述备选文件信息记录中选取当前未被锁定的目标文件信息记录,包括:
19.依次选取所述文件记录表中的每一备选文件信息记录,并确定是否选取成功;
20.在成功选取到文件记录表中的任一所述备选文件信息记录时,将当前成功选取到的所述备选信息记录确定为当前未被锁定的目标文件信息记录。
21.上述的方法,可选的,所述从ftp服务器下载所述目标文件信息记录对应的文件之后,还包括:
22.若检测到对所述目标文件信息记录对应的文件下载失败,则对所述目标文件信息记录解除锁定,并重新在各个所述备选文件信息记录中选取当前未被锁定的新的目标文件信息记录。
23.一种文件下载装置,应用于ftp客户端集群中的目标ftp客户端,所述装置包括:
24.确定单元,用于响应文件下载指令,确定所述ftp客户端集群的文件记录表中的各个备选文件信息记录,所述文件记录表根据所述ftp服务器中的下载目录文件列表得到,每个所述备选文件信息记录为处于待下载状态的文件信息记录;
25.选取单元,用于在各个所述备选文件信息记录中选取当前未被锁定的目标文件信息记录;
26.下载单元,用于应用所述目标ftp客户端对应的记录锁对所述目标文件信息记录进行锁定,并从ftp服务器下载所述目标文件信息记录对应的文件。
27.上述的装置,可选的,所述确定单元,包括:
28.获取子单元,用于获取所述ftp客户端集群的文件记录表;
29.第一确定子单元,用于确定所述文件记录表中的每个文件信息记录的状态;
30.第二确定子单元,用于对于每个所述文件信息记录,在所述文件信息记录的状态为待下载状态的情况下,将所述文件信息记录确定为备选文件信息。
31.上述的装置,可选的,所述获取子单元,包括:
32.获取组件,用于获取ftp服务器的参数;
33.第一执行组件,用于在根据所述ftp服务器的参数与所述ftp服务器建立通信连接后,通过所述通信连接向所述ftp服务器发送第一指令,以从所述ftp服务器获得所述ftp服务器的下载目录文件列表;
34.第二执行组件,用于根据所述下载目录文件列表中的各文件的文件信息获得所述ftp客户端的文件记录表。
35.上述的装置,可选的,所述选取单元,包括:
36.选取子单元,用于依次选取所述文件记录表中的每一备选文件信息记录,并确定是否选取成功;
37.第三确定子单元,用于在成功选取到文件记录表中的任一所述备选文件信息记录时,将当前成功选取到的所述备选信息记录确定为当前未被锁定的目标文件信息记录。
38.一种存储介质,所述存储介质包括存储指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如上述的文件下载方法。
39.一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如上述的文件下载方
法。
40.基于上述本发明实施提供的一种文件下载方法及装置、存储介质及电子设备,该方法包括:响应于文件下载指令,确定ftp客户端集群的文件记录表中的各个备选文件信息记录,所述文件记录表根据所述ftp服务器中的下载目录文件列表得到,每个所述备选文件信息记录为处于待下载状态的文件信息记录;在各个所述备选文件信息记录中选取当前未被锁定的目标文件信息记录;应用所述目标ftp客户端对应的记录锁对所述目标文件信息记录进行锁定,并从ftp服务器下载所述目标文件信息记录对应的文件,所述目标ftp客户端对应的记录锁用于锁定文件信息记录,以阻止所述ftp客户端集群中除所述目标ftp客户端以外的ftp客户端对该文件信息记录进行操作,从而可以避免同一文件同时被多个ftp客户端重复下载而产生的问题。
附图说明
41.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
42.图1为本发明提供的一种文件下载方法的方法流程图;
43.图2为本发明提供的一种确定备选文件信息记录的过程的流程图;
44.图3为本发明提供的一种选取当前未被锁定的目标文件信息记录的过程的流程图;
45.图4为本发明提供的一种文件下载装置的结构示意图;
46.图5为本发明提供的一种电子设备的结构示意图;
47.图6为本发明提供的一种实施场景示例图。
具体实施方式
48.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
50.现有技术中,为了提高文件下载效率,通常设置有多个ftp客户端同时从ftp服务器中下载文件,但是在多ftp客户端的情况下,容易出现多个客户端同时下载一个远程文件的情况,会导致文件被多个节点重复处理,从而产生文件被覆盖、或i/o出错等问题。
51.基于此,本发明实施例提供了一种文件下载方法,该方法可以应用于电子设备,电子设备可以是ftp客户端集群中的目标ftp客户端,ftp集群中包含多个ftp客户端,目标ftp
客户端可以是ftp集群中的任意一个ftp客户端,所述方法的方法流程图如图1所示,具体包括:
52.s101:响应于文件下载指令,确定所述ftp客户端集群的文件记录表中的各个备选文件信息记录,所述文件记录表根据所述ftp服务器中的下载目录文件列表得到,每个所述备选文件信息记录为处于待下载状态的文件信息记录。
53.在本实施例中,下载目录文件列表得到可以包括ftp服务器中的下载目录的各个文件的文件信息;文件记录表可以根据ftp服务器的下载目录中各文件的文件信息生成,文件记录表可以记录ftp服务器的下载目录中各文件的文件信息记录和文件状态,文件信息记录可以包括文件名,在一些实施例中,可以将下载目录文件列表与初始文件记录表进行比对,以在待下载文件目录文件列表中确定出新的文件信息记录,将待下载目标文件列表中新的文件信息记录插入到初始文件记录,获得文件信息记录。
54.s102:在各个所述备选文件信息记录中选取当前未被锁定的目标文件信息记录。
55.在本实施例中,将备选文件信息分配到每个ftp客户端之后,ftp客户端可以对分配到的备选文件信息进行锁定,从而可以避免其他ftp客户端选取该已被分配的备选文件信息来进行文件下载。
56.s103:应用所述目标ftp客户端对应的记录锁对所述目标文件信息记录进行锁定,并从ftp服务器下载所述目标文件信息记录对应的文件,所述目标ftp客户端对应的记录锁用于锁定文件信息记录。
57.在本实施例中,记录锁可以是oracle行级锁,行级锁只对正在访问的行进行锁定。使用行锁时,其他用户可以更新同一表中该行之外的数据。行级锁是一种排他锁,用于防止其他事务修改此行,也即,记录锁可以用于阻止所述ftp客户端集群中除所述目标ftp客户端以外的ftp客户端利用该目标文件信息记录进行文件下载。
58.在本实施例中,每个ftp客户端均具有其各自对应的记录锁,目标ftp客户端在为目标文件信息记录进行锁定之后,可以阻止所述ftp客户端集群中除所述目标ftp客户端以外的ftp客户端对该目标文件信息记录进行操作,从而可以避免同一文件同时被多个ftp客户端重复下载而产生的问题。
59.在本发明提供的一实施例中,基于上述的方案,具体的,所述确定所述ftp客户端集群的文件记录表中的各个备选文件信息记录的过程,如图2所示,具体包括:
60.s201:获取所述ftp客户端集群的文件记录表。
61.在本实施例中,可以从ftp客户端集群的共享数据库中获得文件记录表。
62.s202:确定所述文件记录表中的每个文件信息记录的状态。
63.在本实施例中,可以读取文件记录表中的预设状态字段,从而确定出文件记录表中的每个文件信息记录的状态。
64.s203:对于每个所述文件信息记录,在所述文件信息记录的状态为待下载状态的情况下,将所述文件信息记录确定为备选文件信息。
65.在本实施中,备选文件信息所对应的文件为ftp服务器中待下载的文件。
66.在本发明提供的一实施例中,基于上述的方案,具体的,所述获取所述ftp客户端集群的文件记录表,包括:
67.获取ftp服务器的参数;
68.在根据所述ftp服务器的参数与所述ftp服务器建立通信连接后,通过所述通信连接向所述ftp服务器发送第一指令,以从所述ftp服务器获得所述ftp服务器的下载目录文件列表;
69.根据所述下载目录文件列表中的各文件的文件信息获得所述ftp客户端的文件记录表。
70.在本实施例中,第一指令可以是列表list指令,用于列出ftp服务器指定目录中的文件信息并返回给客户端。ftp服务器的参数可以包括ip地址、用户名、密码、下载目录等。
71.在本实施例中,可以将下载目录文件列表与待更新文件记录表进行比对,获得比对结果,根据比对结果确定出下载目录文件列表中记录的且不存在于待更新文件记录中的文件信息记录,将该文件信息记录插入到待更新文件记录表中,获得文件记录表,待更新文件记录表可以是初始文件记录表。
72.在本发明提供的一实施例中,基于上述的方案,具体的,所述在各个所述备选文件信息记录中选取当前未被锁定的目标文件信息记录,如图3所示,包括:
73.s301:依次选取所述文件记录表中的每一备选文件信息记录,并确定是否选取成功。
74.在本实施例中,可以依次对文件记录表中的每一文件文件信息记录执行选取操作,若检测到预设的报错信息,则确定选取失败,否则,确定选取成功。
75.s302:在成功选取到文件记录表中的任一所述备选文件信息记录时,将当前成功选取到的所述备选信息记录确定为当前未被锁定的目标文件信息记录。
76.应用本发明实施例提供的方法,能够选取出未被其他ftp客户端锁定的目标文件信息记录,可以避免多个ftp客户端同时获取同一目标文件信息记录。
77.在本发明提供的一实施例中,基于上述的方案,具体的,所述从ftp服务器下载所述目标文件信息记录对应的文件之后,还包括:
78.若检测到对所述目标文件信息记录对应的文件下载失败,则对所述目标文件信息记录解除锁定,并重新在各个所述备选文件信息记录中选取当前未被锁定的新的目标文件信息记录。
79.在一些实施例中,若检测到对所述目标文件信息记录对应的文件下载失败,则可以继续选取该目标文件信息记录的下一备选文件信息记录,直至获取到新的目标文件信息记录。
80.在一些实施例中,若检测到若检测到对所述目标文件信息记录对应的文件下载成功,则可以向所述ftp服务端发送迁移指令,以使得所述ftp服务端将该目标文件信息记录对应的文件迁移到预设的备份目录,并在所述文件记录表中更新该目标文件信息记录的状态,该目标文件信息记录更新后的状态表征该目标文件信息记录对应的文件已完成下载。
81.与图1所述的方法相对应,本发明实施例还提供了一种文件下载装置,用于对图1中方法的具体实现,本发明实施例提供的文件下载装置可以应用于电子设备中,其结构示意图如图4所示,具体包括:
82.确定单元401,用于响应文件下载指令,确定所述ftp客户端集群的文件记录表中的各个备选文件信息记录,所述文件记录表根据所述ftp服务器中的下载目录文件列表得到,每个所述备选文件信息记录为处于待下载状态的文件信息记录;
83.选取单元402,用于在各个所述备选文件信息记录中选取当前未被锁定的目标文件信息记录;
84.下载单元403,用于应用所述目标ftp客户端对应的记录锁对所述目标文件信息记录进行锁定,并从ftp服务器下载所述目标文件信息记录对应的文件。
85.在本发明提供的一实施例中,基于上述的方案,具体的,所述确定单元,包括:
86.获取子单元,用于获取所述ftp客户端集群的文件记录表;
87.第一确定子单元,用于确定所述文件记录表中的每个文件信息记录的状态;
88.第二确定子单元,用于对于每个所述文件信息记录,在所述文件信息记录的状态为待下载状态的情况下,将所述文件信息记录确定为备选文件信息。
89.在本发明提供的一实施例中,基于上述的方案,具体的,所述获取子单元,包括:
90.获取组件,用于获取ftp服务器的参数;
91.第一执行组件,用于在根据所述ftp服务器的参数与所述ftp服务器建立通信连接后,通过所述通信连接向所述ftp服务器发送第一指令,以从所述ftp服务器获得所述ftp服务器的下载目录文件列表;
92.第二执行组件,用于根据所述下载目录文件列表中的各文件的文件信息获得所述ftp客户端的文件记录表。
93.在本发明提供的一实施例中,基于上述的方案,具体的,所述选取单元,包括:
94.选取子单元,用于依次选取所述文件记录表中的每一备选文件信息记录,并确定是否选取成功;
95.第三确定子单元,用于在成功选取到文件记录表中的任一所述备选文件信息记录时,将当前成功选取到的所述备选信息记录确定为当前未被锁定的目标文件信息记录。
96.上述本发明实施例公开的文件下载装置中的各个单元和模块具体的原理和执行过程,与上述本发明实施例公开的文件下载方法相同,可参见上述本发明实施例提供的文件下载方法中相应的部分,这里不再进行赘述。
97.本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述文件下载方法。
98.本发明实施例还提供了一种电子设备,其结构示意图如图5所示,具体包括存储器501,以及一个或者一个以上的指令502,其中一个或者一个以上指令502存储于存储器501中,且经配置以由一个或者一个以上处理器503执行所述一个或者一个以上指令502进行以下操作:
99.响应于文件下载指令,确定所述ftp客户端集群的文件记录表中的各个备选文件信息记录,所述文件记录表根据所述ftp服务器中的下载目录文件列表得到,每个所述备选文件信息记录为处于待下载状态的文件信息记录;
100.在各个所述备选文件信息记录中选取当前未被锁定的目标文件信息记录;
101.应用所述目标ftp客户端对应的记录锁对所述目标文件信息记录进行锁定,并从ftp服务器下载所述目标文件信息记录对应的文件。
102.参见图6,为本发明实施例提供的一种实施场景示例图,示出了包括多个ftp客户端和ftp服务器的实施场景,其中,多个ftp客户端可以从ftp服务器中下载文件。对于任意一个ftp客户端,将该ftp客户端确定为目标客户端,目标客户端首先确定ftp客户端集群的
文件记录表中的各个备选文件信息记录,然后在各个所述备选文件信息记录中选取当前未被锁定的目标文件信息记录;最后应用所述目标ftp客户端对应的记录锁对所述目标文件信息记录进行锁定,并从ftp服务器下载所述目标文件信息记录对应的文件。
103.在一些实施例中,每个ftp客户端中部署有文件下载系统,包括:文件列表保存模块以及文件下载模块文件列表保存模块轮询ftp服务器远程目录下所有文件,根据文件名查询是否在文件记录表存在,如不存在,则为新增文件,插入到文件名记录表。文件下载模块查询记录表中待下载的文件,通过对该表记录加行锁,保证只有本节点下载该文件,避免出现文件被多个节点下载带来的覆盖等问题。
104.在本实施例中,可以建立ftp客户端节点信息配置表ftpclienthostinfo。将所有ftp集群客户端节点插入表,具体如表1所示:
[0105][0106][0107]
表1
[0108]
本实施例中的文件记录表filerecord,如表2所示:
[0109][0110]
表2
[0111]
文件列表保存模块(常驻进程),用于查询下载服务配置表ftpdownloadconf获取远程ftp服务器参数,包括ip地址、用户名、密码、远程目录等。ftp客户端通过以上参数连接ftp服务器后,通过list指令获取远程目录文件列表,一一查询列表中的文件在文件记录表filerecord是否存在,如不存在,则将文件信息插入到数据库文件记录表中,文件状态为“w-待下载”。本模块为常驻进程,处理完文件列表后,连接ftp服务器后重新开始。
[0112]
文件下载模块(常驻进程),用于查询filerecord文件记录表状态为“w-待下载”的所有记录。循环处理:对文件记录执行select...for update操作锁定该记录,如果报错“ora-00054”(说明资源正忙该记录正被其他节点下载),则继续处理下一条记录。如果未报错,则通过server_ip查询ftpdownloadconf表中的ftp参数连接到远程服务器,从远程目录下载对应文件,下载文件后,远程文件移入备份目录,文件状态更新为“f-下载完成”,更新提交后行锁释放。常驻进程,下载结束后,重新查询文件记录表中“w-待下载”的文件进行处理。
[0113]
在本实施例中,如果下载过程报错,比如远程服务器连接异常,则自动释放行锁,继续处理下一条记录。
[0114]
需要说明的是,本发明提供的一种文件下载方法及装置可用于人工智能领域、区块链领域、分布式领域、云计算领域、大数据领域、物联网领域、移动互联领域、网络安全领域、芯片领域、虚拟现实领域、增强现实领域、全息技术领域、量子计算领域、量子通信领域、量子测量领域、数字孪生领域或金融领域。上述仅为示例,并不对本发明提供的一种文件下载方法及装置的应用领域进行限定。
[0115]
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0116]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0117]
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0118]
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0119]
以上对本发明所提供的一种文件下载方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1