本技术涉及文件处理,尤其涉及一种文件迁移方法及装置。
背景技术:
1、在软件开发系统版本迭代的过程中,会遇到这样一些场景:由于系统涉及到的文件存储服务器老龄化或其他等原因,想要将此服务器上的文件进行迁移至一台或多台新的文件存储服务器的环境上,以保证系统的正常运行。
2、现在,通常是采用rclone支持实现文件存储间的迁移操作。rclone是一个命令行程序,用于管理云存储上的文件,它打包了各大供应商云存储的接口以提供统一的访问界面。rclone能够支持40多种云存储产品,包括对象存储、企业和消费者文件存储、服务以及标准传输协议,同时为了保护数据的可靠性,rclone可保留时间戳和始终进行文件的验证校验。
3、但是,虽然rclone操作对象存储,可以实现上传对象、拉取对象,并可实现对象存储间的迁移,但是无法满足在对文件迁移时同步修改系统数据库中文件存储路径的需求,即将旧的路径变为新的文件存储服务器下的路径。那么在系统读取文件时,仍然会根据旧的文件存储路径从系统数据库中获取文件,从而导致系统找不到文件而读取失败了,为此亟待一套有效的优化解决方案。
技术实现思路
1、有鉴于此,本技术提供一种文件迁移方法及装置,以在执行将目标文件迁移至新服务器环境上的同时,利用目标文件在新服务器上的新存储路径更新系统数据库中已记录的旧存储路径,以自动完成对目标文件的迁移操作,从而确保无论目标文件迁移至哪个新服务器上,根据系统数据库中已更新的新存储路径,都能够成功读取到目标文件,以不影响系统的正常运行。
2、为了达到上述目的,本技术主要提供如下技术方案:
3、本技术第一方面提供了一种文件迁移方法,该方法包括:
4、确定待迁移的目标文件;
5、从系统数据库中获取所述目标文件对应的第一存储路径,所述第一存储路径用于表征所述目标文件在第一服务器中的当前存储位置;
6、在第二服务器上创建用于迁移所述目标文件所至的文件目录;
7、根据所述文件目录,确定迁移所述目标文件所需的第二存储路径;
8、根据所述第二存储路径将所述目标文件迁移至所述第二服务器以及利用所述第二存储路径更新所述系统数据库中已记录的所述第一存储路径,以完成对所述目标文件的迁移操作。
9、本技术第一方面的一些变更实施方式中,所述根据所述第二存储路径将所述目标文件迁移至所述第二服务器,包括:
10、判断所述目标文件的大小是否大于预设阈值;
11、若是,则根据所述第二存储路径,基于将所述目标文件所分片成的多个文件块传输至所述第二服务器,将所述目标文件迁移至所述第二服务器;
12、若否,则根据所述第二存储路径,利用数据同步工具rclone将所述目标文件迁移至所述第二服务器中。
13、本技术第一方面的一些变更实施方式中,所述根据所述第二存储路径,基于将所述目标文件所分片成的多个文件块传输至所述第二服务器,将所述目标文件迁移至所述第二服务器,包括:
14、按照预置数目将所述目标文件划分成多个文件块,每个所述文件块对应添加唯一标号;
15、根据所述第二存储路径,利用多个所述数据同步工具rclone并行支持各个所述文件块迁移至所述第二服务器;
16、根据所述文件块对应的所述标号,将迁移至所述第二服务器上的各个所述文件块进行拼接得到所述目标文件。
17、本技术第一方面的一些变更实施方式中,在所述根据所述文件块对应的所述标号,将迁移至所述第二服务器上的各个所述文件块进行拼接得到所述目标文件之后,所述方法还包括:
18、基于所述第二服务器上的各个所述文件块之间的所述标号是否连续,判断迁移至所述第二服务器上的所述目标文件是否完整;和/或,
19、基于所述第二服务器上的各个所述文件块对应的所述标号,统计所述标号的数目是否与所述预置数目一致,以判断迁移至所述第二服务器上的所述目标文件是否完整。
20、本技术第一方面的一些变更实施方式中,若判断迁移至所述第二服务器上的所述目标文件是不完整的,则判定迁移操作失败,并触发迁移异常的提示信息。
21、本技术第一方面的一些变更实施方式中,所述方法还包括:
22、在未执行文件迁移操作之前,计算在所述第一服务器上存储的所述目标文件对应的第一摘要信息;
23、在执行文件迁移操作以得到待验证的迁移文件之后,计算在所述第二服务器上存储的所述迁移文件的第二摘要信息;
24、基于比对所述第二摘要信息与所述第一摘要信息是否一致,验证所述目标文件是否完整迁移至所述第二服务器上。
25、本技术第二方面提供了一种文件迁移装置,该装置包括:
26、第一确定单元,用于确定待迁移的目标文件;
27、获取单元,用于从系统数据库中获取所述目标文件对应的第一存储路径,所述第一存储路径用于表征所述目标文件在第一服务器中的当前存储位置;
28、创建单元,用于在第二服务器上创建用于迁移所述目标文件所至的文件目录;
29、第二确定单元,用于根据所述文件目录,确定迁移所述目标文件所需的第二存储路径;
30、迁移单元,用于根据所述第二存储路径将所述目标文件迁移至所述第二服务器;
31、更新单元,用于利用所述第二存储路径更新所述系统数据库中已记录的所述第一存储路径,以完成对所述目标文件的迁移操作。
32、本技术第二方面的一些变更实施方式中,所述迁移单元包括:
33、判断模块,用于判断所述目标文件的大小是否大于预设阈值;
34、迁移模块,用于当确定所述目标文件的大小是大于预设阈值时,根据所述第二存储路径,基于将所述目标文件所分片成的多个文件块传输至所述第二服务器,将所述目标文件迁移至所述第二服务器;
35、所述迁移模块,还当确定所述目标文件的大小不大于预设阈值时,根据所述第二存储路径,利用数据同步工具rclone将所述目标文件迁移至所述第二服务器中。
36、本技术第二方面的一些变更实施方式中,所述迁移模块包括:
37、划分子模块,用于按照预置数目将所述目标文件划分成多个文件块,每个所述文件块对应添加唯一标号;
38、处理子模块,用于根据所述第二存储路径,利用多个所述数据同步工具rclone并行支持各个所述文件块迁移至所述第二服务器;
39、拼接子模块,用于根据所述文件块对应的所述标号,将迁移至所述第二服务器上的各个所述文件块进行拼接得到所述目标文件。
40、本技术第二方面的一些变更实施方式中,在所述根据所述文件块对应的所述标号,将迁移至所述第二服务器上的各个所述文件块进行拼接得到所述目标文件之后,所述迁移模块还包括:
41、校验子模块,用于基于所述第二服务器上的各个所述文件块之间的所述标号是否连续,判断迁移至所述第二服务器上的所述目标文件是否完整;和/或,
42、所述校验子模块,还用于基于所述第二服务器上的各个所述文件块对应的所述标号,统计所述标号的数目是否与所述预置数目一致,以判断迁移至所述第二服务器上的所述目标文件是否完整。
43、本技术第二方面的一些变更实施方式中,所述迁移模块还包括:异常处理子模块;
44、所述异常处理子模块,用于若判断迁移至所述第二服务器上的所述目标文件是不完整的,则判定迁移操作失败,并触发迁移异常的提示信息。
45、本技术第二方面的一些变更实施方式中,所述装置还包括:
46、计算单元,用于在未执行文件迁移操作之前,计算在所述第一服务器上存储的所述目标文件对应的第一摘要信息;
47、所述计算单元,还用于在执行文件迁移操作以得到待验证的迁移文件之后,计算在所述第二服务器上存储的所述迁移文件的第二摘要信息;
48、验证单元,用于基于比对所述第二摘要信息与所述第一摘要信息是否一致,验证所述目标文件是否完整迁移至所述第二服务器上。
49、本技术第三方面提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如上述的文件迁移方法。
50、本技术第四方面提供了一种电子设备,所述设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;
51、其中,所述处理器、所述存储器通过所述总线完成相互间的通信;
52、所述处理器用于调用所述存储器中的程序指令,以执行如上述的文件迁移方法。
53、借由上述技术方案,本技术提供的技术方案至少具有下列优点:
54、本技术提供一种文件迁移方法及装置,在确定待迁移的目标文件之后,本技术从系统数据库中获取目标文件的存储路径,该存储路径用于指示目标文件在旧服务器上的存储位置,基于文件迁移的目的,本技术基于迁移需求在新服务器上创建文件目录,以用于在此文件目录下存储经迁移所至的目标文件,并且在目标文件由旧服务器迁移至新服务器之后,本技术还同时将系统数据库中已记录的旧存储路径修改为新存储路径,以方便系统数据库在调取目标文件需求时能够基于新存储路径读取到所需文件。相较于现有技术,本技术提供的文件迁移的优化解决方案,确保无论目标文件迁移至哪个新服务器上,根据系统数据库中已更新的新存储路径,都能够成功读取到目标文件,以不影响系统的正常运行。
55、上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。