文件同步方法、装置、设备及介质制造方法及图纸

技术编号:39323822 阅读:15 留言:0更新日期:2023-11-12 16:03
本申请涉及互联网技术领域,尤其涉及一种文件同步方法、装置、设备及介质;方法包括:多个对等节点中的任一对等节点,向服务器发送用于获取目标版本的至少一个开发文件的文件同步请求;接收服务器返回的至少一个开发文件各自的内容标识,并确定至少一个内容标识各自对应的对等节点集合;将待获取的每个开发文件按照数据量划分为至少一个文件分片,分别标注至少一个文件分片在目标文件中的位置,从该开发文件所在的至少一个其他对等节点中分别拉取相应的文件分片对应的文件内容,并将拉取的每个文件内容保存至相应的文件分片在目标文件中的标注位置,从而获得该开发文件。本申请可以降低服务器的网络带宽压力,提高开发文件的拉取速度。拉取速度。拉取速度。

【技术实现步骤摘要】
文件同步方法、装置、设备及介质


[0001]本申请涉及互联网
,尤其涉及一种文件同步方法、装置、设备及介质。

技术介绍

[0002]随着互联网技术的不断发展,各种应用程序层出不穷,给人们的工作和生活带来了便利。每种应用程序通常需要多个开发人员协同开发,每个开发人员可以通过安装有版本控制软件的终端设备(下面简称版本控制端),对开发的文件(例如代码文件、二进制的音视频文件等)进行版本管理,可选的,上述版本控制软件可以是:分布式版本控制系统Git软件。
[0003]相关技术中,为了实现多个版本控制端之间的开发文件同步,每个开发人员可以通过版本控制端,将新版本的开发文件上传至版本控制服务器,以使其他开发人员通过各自使用的版本控制端,从版本控制服务器中拉取该开发人员上传的新版本的开发文件。
[0004]但是,当多个开发人员通过各自使用的版本控制端,在同一时间段内从版本控制服务器拉取开发文件时,会增大版本控制服务器的网络带宽压力,降低每个版本控制端的拉取速度,从而降低开发人员的开发效率。

技术实现思路

[0005]本申请实施例提供一种文件同步方法、装置、电子设备及存储介质,用于降低版本控制服务器的网络带宽压力,提高版本控制端拉取开发文件的速度。
[0006]一方面,本申请实施例提供一种文件同步方法,应用于多个对等节点中的任一对等节点,每个对等节点对应一个版本控制端,所述方法包括:
[0007]当针对目标开发项目设置有目标版本的开发数据时,向服务器发送文件同步请求,所述文件同步请求用于获取所述目标版本对应的至少一个开发文件;
[0008]接收所述服务器返回的所述至少一个开发文件各自的内容标识,并确定所述至少一个内容标识各自对应的对等节点集合;其中,每个内容标识对应的开发文件,位于相应的对等节点集合包含的各个其他对等节点中;
[0009]针对待获取的所述至少一个开发文件,分别执行以下操作:将一个开发文件按照数据量划分为至少一个文件分片,在目标文件中分别标注所述至少一个文件分片各自的位置,从所述一个开发文件所在的至少一个其他对等节点中,分别拉取相应的文件分片对应的文件内容,并将拉取的每个文件内容保存至相应的文件分片在所述目标文件中的标注位置,在拉取完成后,将所述目标文件作为所述一个开发文件。
[0010]一方面,本申请实施例提供一种文件同步方法,应用于节点路由设备,所述方法包括:
[0011]接收多个对等节点中的任一对等节点发送的包含至少一个内容标识的节点获取请求;其中,每个对等节点对应一个版本控制端,每个内容标识对应目标版本的一个开发文件;
[0012]基于内容标识与对等节点集合的对应关系,确定所述至少一个内容标识各自对应的对等节点集合;其中,每个内容标识对应的开发文件,位于相应的对等节点集合包含的各个其他对等节点中;
[0013]将所述至少一个内容标识各自对应的对等节点集合发送给所述任一对等节点,以使所述任一对等节点从每个对等节点集合包含的至少一个其他对等节点中,拉取相应的内容标识对应的开发文件。
[0014]一方面,本申请实施例提供一种文件同步装置,应用于多个对等节点中的任一对等节点,每个对等节点对应一个版本控制端,所述装置包括:
[0015]同步请求模块,用于当针对目标开发项目设置有目标版本的开发数据时,向服务器发送文件同步请求,所述文件同步请求用于获取所述目标版本对应的至少一个开发文件;
[0016]节点获取模块,用于接收所述服务器返回的所述至少一个开发文件各自的内容标识,并确定所述至少一个内容标识各自对应的对等节点集合;其中,每个内容标识对应的开发文件,位于相应的对等节点集合包含的各个其他对等节点中;
[0017]拉取模块,用于针对待获取的所述至少一个开发文件,分别执行以下操作:将一个开发文件按照数据量划分为至少一个文件分片,在目标文件中分别标注所述至少一个文件分片各自的位置,从所述一个开发文件所在的至少一个其他对等节点中,分别拉取相应的文件分片对应的文件内容,并将拉取的每个文件内容保存至相应的文件分片在所述目标文件中的标注位置,在拉取完成后,将所述目标文件作为所述一个开发文件。
[0018]可选的,所述确定所述至少一个内容标识各自对应的对等节点集合时,所述节点获取模块还用于:
[0019]将包含至少一个内容标识的节点获取请求发送给节点路由设备,并接收所述节点路由设备返回的,所述至少一个内容标识各自对应的对等节点集合;或者
[0020]基于保存的内容标识与对等节点集合的对应关系,获得所述至少一个内容标识各自对应的对等节点集合。
[0021]可选的,所述装置还包括记录模块,用于:
[0022]分别记录所述至少一个文件分片各自的拉取状态;其中,所述拉取状态为拉取成功或者拉取失败;
[0023]则所述在拉取完成后,将所述目标文件作为所述一个开发文件时,所述拉取模块还用于:
[0024]若所述至少一个文件分片各自对应的拉取状态为拉取成功,则将所述目标文件作为所述一个开发文件。
[0025]可选的,所述装置还包括重新拉取模块,用于:
[0026]若存在拉取状态为拉取失败的文件分片,则将拉取失败的文件分片保存至拉取队列;
[0027]针对所述拉取对列中的每个文件分片,从所述至少一个其他对等节点中选择目标对等节点,并从所述目标对等节点中重新拉取该文件分片对应的文件内容,直至该文件分片的拉取状态为完成拉取。
[0028]可选的,所述将一个开发文件的数据量划分为至少一个文件分片时,所述拉取模
块还用于:
[0029]按照一个开发文件所在的所有其他对等节点的数量,将所述一个开发文件划分为相应数量的文件分片;其中,不同的其他对等节点对应不同的文件分片;
[0030]则从所述一个开发文件所在的至少一个其他对等节点中,分别拉取相应的文件分片对应的文件内容时,所述拉取模块还用于:
[0031]从所述一个开发文件所在的所有其他对等节点中,分别拉取相应的文件分片对应的文件内容。
[0032]可选的,每个内容标识是所述服务器基于相应的开发文件的文件内容获得的;则所述装置还包括验证模块,用于:
[0033]基于拉取的所述一个开发文件的文件内容,确定所述一个开发文件的候选内容标识;
[0034]若所述候选内容标识与所述一个开发文件的内容标识相同,则将所述一个开发文件的内容标识以及本机共享地址信息发送至所述节点路由设备或者所述多个对等节点中的各个其他对等节点。
[0035]可选的,所述装置还包括:
[0036]上传模块,用于将针对所述目标开发项目开发的新版本的开发文件上传至所述服务器,以使所述服务器确定所述新版本的开发文件对应的内容标识,并将所述新版本的开发文件与相应的内容标识进行保存;
[0037]标识发送模块,用于获得所述新版本的开发文件对应的内容标识,并将所述新版本的开发文件对应的内容标识以本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件同步方法,其特征在于,应用于多个对等节点中的任一对等节点,每个对等节点对应一个版本控制端,所述方法包括:当针对目标开发项目设置有目标版本的开发数据时,向服务器发送文件同步请求,所述文件同步请求用于获取所述目标版本对应的至少一个开发文件;接收所述服务器返回的所述至少一个开发文件各自的内容标识,并确定所述至少一个内容标识各自对应的对等节点集合;其中,每个内容标识对应的开发文件,位于相应的对等节点集合包含的各个其他对等节点中;针对待获取的所述至少一个开发文件,分别执行以下操作:将一个开发文件按照数据量划分为至少一个文件分片,在目标文件中分别标注所述至少一个文件分片各自的位置,从所述一个开发文件所在的至少一个其他对等节点中,分别拉取相应的文件分片对应的文件内容,并将拉取的每个文件内容保存至相应的文件分片在所述目标文件中的标注位置,在拉取完成后,将所述目标文件作为所述一个开发文件。2.根据权利要求1所述的方法,其特征在于,所述确定所述至少一个内容标识各自对应的对等节点集合,包括:将包含至少一个内容标识的节点获取请求发送给节点路由设备,并接收所述节点路由设备返回的,所述至少一个内容标识各自对应的对等节点集合;或者基于保存的内容标识与对等节点集合的对应关系,获得所述至少一个内容标识各自对应的对等节点集合。3.根据权利要求1或2所述的方法,其特征在于,所述从所述一个开发文件所在的至少一个其他对等节点中,分别拉取相应的文件分片对应的文件内容之后,还包括:分别记录所述至少一个文件分片各自的拉取状态;其中,所述拉取状态为拉取成功或者拉取失败;则所述在拉取完成后,将所述目标文件作为所述一个开发文件,包括:若所述至少一个文件分片各自对应的拉取状态为拉取成功,则将所述目标文件作为所述一个开发文件。4.根据权利要求3所述的方法,其特征在于,所述在拉取完成后,将所述目标文件作为所述一个开发文件之前,还包括:若存在拉取状态为拉取失败的文件分片,则将拉取失败的文件分片保存至拉取队列;针对所述拉取对列中的每个文件分片,从所述至少一个其他对等节点中选择目标对等节点,并从所述目标对等节点中重新拉取该文件分片对应的文件内容,直至该文件分片的拉取状态为完成拉取。5.根据权利要求1或2所述的方法,其特征在于,所述将一个开发文件按照数据量划分为至少一个文件分片,包括:按照一个开发文件所在的所有其他对等节点的数量,将所述一个开发文件按照数据量划分为相应数量的文件分片;其中,不同的其他对等节点对应不同的文件分片;则从所述一个开发文件所在的至少一个其他对等节点中,分别拉取相应的文件分片对应的文件内容,包括:从所述一个开发文件所在的所有其他对等节点中,分别拉取相应的文件分片对应的文件内容。
6.根据权利要求2所述的方法,其特征在于,每个内容标识是所述服务器基于相应的开发文件的文件内容获得的;则所述在拉取完成后,将所述目标文件作为所述一个开发文件之后,还包括:基于拉取的所述一个开发文件的文件内容,确定所述一个开发文件的候选内容标识;若所述候选内容标识与所述一个开发文件的内容标识相同,则将所述一个开发文件的内容标识以及本机共享地址信息发送至所述节点路由设备或者所述多个对等节点中的各个其他对等节点。7.根据权利要求2所述的方法,其特征在于,所述方法还包括:将针对所述目标开发项目开发的新版本的开发文件上传至所述服务器,以使所述服务器确定所述新版本的开发文件对应的内容标识,并将所述新版本的开发文件与相应的内容标识进行保存;获得所述新版本的开发文件对应的内容标识...

【专利技术属性】
技术研发人员:林永生柯君邸允山徐丹胡浩
申请(专利权)人:深圳市腾讯网域计算机网络有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1