一种数据同步方法、装置、云平台、系统及存储介质

文档序号:7502 发布日期:2021-09-17 浏览:27次 英文

一种数据同步方法、装置、云平台、系统及存储介质

技术领域

本公开涉及数据同步

技术领域

,尤其涉及一种数据同步方法、装置、云平台、系统及存储介质。

背景技术

终端通常需要与服务端保持数据同步。例如,终端存储的联系人列表需要与服务器存储的最新版本的联系列表保持同步;终端本地存储的文件需要与服务器存储的最新版本的文件保持同步。

现有技术中,终端上数据的同步方式是通过通用的基本上传接口,上传到云端进行数据同步。这类接口可以很好的支持在终端本地存储的数据的同步过程。如果数据存储在第三方存储端,需要用户先将非本地数据拉取到本地,再将拉取到本地的数据上传至的云端存储实现数据同步。

然而,对于将非本地数据进行数据同步的业务场景,将非本地存储的数据拉取到本地存储的过程会额外增加用户的网络开销,业务逻辑上需要维护非本地数据的拉取逻辑和数据再上传逻辑,如果业务场景相同,对不同的客户都要维护上述逻辑的话,会浪费大量人力。

发明内容

为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种数据同步方法、装置、云平台、系统及存储介质,以大大降低用户的网络开销和人力成本。

本公开提供了一种数据同步,应用于云平台,该方法包括:

接收终端发送的数据同步请求,所述数据同步请求携带待同步文件的文件名称;

将所述数据同步请求输入请求队列中,所述请求队列中包括一个或多个数据同步请求;

提取所述请求队列中的目标同步请求,并将所述目标同步请求转发至数据存储端;

接收所述数据存储端返回的所述文件名称对应的待同步文件,并对所述待同步文件执行存储操作。

本公开提供了一种数据同步装置,配置于云平台,该装置包括:

数据同步请求接收模块,用于接收终端发送的数据同步请求,所述数据同步请求携带待同步文件的文件名称;

入队管理模块,用于将所述数据同步请求输入请求队列中,所述请求队列中包括一个或多个数据同步请求;

出队管理模块,用于提取所述请求队列中的目标同步请求;

请求转发模块,用于将所述目标同步请求转发至数据存储端;

数据拉取模块,用于接收所述数据存储端返回的所述文件名称对应的待同步文件;

待同步文件存储模块,用于对所述待同步文件执行存储操作。

本发明实施例还提供了一种云平台,该云平台包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的数据同步方法。

本公开还提供了一种数据同步系统,该系统包括:

终端、云平台和数据存储端;

所述终端,接收外部输入的数据同步请求,将所述数据同步请求转发至所述云平台,所述数据同步请求携带待同步文件的文件名称;

所述云平台,接收终端发送的至少一个数据同步请求,所述数据同步请求携带待同步文件的文件名称;

将所述至少一个数据同步请求输入请求队列中,所述请求队列中包括一个或多个数据同步请求;

提取所述请求队列中的目标同步请求,并将所述目标同步请求转发至数据存储端;

接收所述数据存储端返回的所述文件名称对应的待同步文件,并对所述待同步文件执行存储操作;

所述数据存储端,接收所述云平台发送的目标同步请求;

将所述目标同步请求携带的待同步文件的文件名称与预先存储的各文件的文件名称匹配,筛选出所述文件名称对应的待同步文件;

将所述待同步文件发送至所述云平台。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的数据同步方法。

本公开实施例提供的技术方案与现有技术相比具有如下优点:

云平台接收到终端发送的数据同步请求后,将数据同步请求进行入队管理和出队管理,基于从请求队列中提取的目标同步请求将非本地数据拉取到本地再上传云平台进行对象存储,以实现异步拉取数据,可以使云平台在执行数据拉取任务时所需的服务器成本更可控,能避免为了应对高并发的数据拉取请求下准备大量公网带宽与服务器资源;并且,云平台将目标同步请求转发至数据存储端,以自动从数据存储端拉取待同步文件,无需用户手动将非本地数据拉取到本地再将拉取到本地的数据进行存储;另外,云平台共用一套拉取上传逻辑,即数据同步逻辑,如果场景相同,不需要对相同场景的中每个用户的数据同步逻辑进行维护,大大降低用户的网络开销和人力成本。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本开实施例提供的数据同步方法的逻辑示意图;

图2为本公开实施例提供的一种数据同步方法的流程示意图;

图3为本公开实施例提供的另一种数据同步方法的流程示意图;

图4为本公开实施例提供的数据同步的另一逻辑示意图;

图5为本公开实施例提供的另一种数据同步方法的流程示意图;

图6为本公开实施例提供的另一种数据同步方法的流程示意图;

图7为本公开实施例提供的一种数据同步装置的结构示意图;

图8为本发明实施例提供的一种云平台的结构示意图。

具体实施方式

为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。

目前,终端上数据的同步方式是通过通用的基本上传类接口,将终端上的文件上传到云端进行数据同步。这类接口对终端本地存储的数据支持良好,不能跨平台的将存储在第三方的数据存储端进行数据同步。例如,如果数据存储在第三方服务器或其他机房等平台,用户需要手动将数据存储端中存储的数据拉取到终端本地,再通过通用的基本上传类接口将终端本地的数据上传到云平台进行对象存储。其中,对象存储是一种面向互联网的分布式存储,也叫面向对象的存储。支持通过http协议在任何时间、地点对文件进行读写与管理,支持标准的Rest API(Representational State TransferApplicationProgramming Interface,表现层状态转移应用程序接口),通过扁平的存储架构为用户提供无限的存储空间,对象存储是一种高可靠、高可用、低成本、无线扩展的存储方式,适用海量的非结构化数据存储,资源可支持弹性扩容。

对象存储呈现出来的是“桶”,“桶”用于又可以称为存储桶,用于存放数据。通过上述方式实现将存储在第三方的数据存储端的数据同步到云平台进行对象存储。

然而,上述数据同步方法的缺点是,对于将非本地数据进行数据同步的业务场景,需要在用户的干预下将非本地数据拉取到本地再上传云平台,增加用户的网络开销;并且,后台需要对上述场景的中每个用户的数据同步逻辑进行维护,如果用户量大,需要浪费大量人力资源去维护上述数据同步逻辑。

为了解决上述问题,本公开实施例提供了一种能够降低网络开销和人力成本的数据同步方法、装置、云平台、系统及存储介质。本公开实施例所提供的数据同步方法可以参照图1所示的数据同步方法的逻辑示意图。参见图1,首先,终端200接收外部输入的至少一个数据同步请求,通过fetch(提供跨域请求)接口将至少一个数据同步请求转发至云平台500,fetch接口可以提供获取资源的接口(包括跨域请求),数据同步请求携带待同步文件的文件名称;云平台接收到至少一个数据同步请求时,将至少一个数据同步请求输入请求队列中,基于请求队列的先进先出的原则,提取请求队列中的目标同步请求;接着,云平台500通知数据拉取服务,通过数据拉取服务将目标同步请求转发至数据存储端600,用于向数据存储端600发起数据下载请求,数据存储端600可以是第三方服务器或者用于存储数据的其他平台;数据存储端600根据接收到的目标同步请求,将该文件名称与预先存储的各文件的文件名称匹配,筛选出文件名称对应的待同步文件,向云平台500返回待同步文件;进一步的,云平台500接收到待同步文件后,通过数据拉取服务将待同步文件转存至云平台500,将待同步文件存储至预先定义的存储桶内,完成数据同步过程。其中,终端200可以通过网络协议如超文本传输安全协议(HyperTextTransferProtocoloverSecureSocketLayer,HTTPS)与云平台建立通信连接并进行信息交互;云平台500可以通过网络协议如HTTPS与数据存储端600建立连接并进行信息交互。终端200与云平台500之间进行有序通信和信息交互,以及云平台500与数据存储端600之间进行有序通信和信息交互,可以保证拉取服务有序执行,并保证数据拉取服务的执行效率。

通过上述方式,对于存储在数据存储端的数据执行数据同步操作时,将数据同步请求进行队列管理,基于请求队列中提取的目标同步请求将非本地数据拉取到本地再上传云平台进行对象存储,以实现异步拉取数据,可以使云平台的执行数据拉取任务时所需的服务器成本更可控,也无需用户手动将非本地数据拉取到本地再将拉取到本地的数据进行存储;并且,云平台共用一套拉取上传逻辑,即数据同步逻辑,如果场景相同,不需要对相同场景的中每个用户的数据同步逻辑进行维护,大大降低用户的网络开销和人力成本。

下面,对本公开实施例提供的一种数据同步方法进行具体的解释,该方法应用于云平台。

如图2所示为数据同步方法的流程示意图。参见图2,该方法包括:

S110、接收终端发送的数据同步请求,数据同步请求携带待同步文件的文件名称。

在本公开实施例中,终端可以包括台式电脑、平板电脑、台式计算机、笔记本电脑、车载终端、可穿戴设备、一体机、智能家居设备等具有通信功能的设备或服务器等。待同步文件可以是任意场景下的需要同步的文件。例如,待同步文件是公安领域的重要文件、医学领域的病例文件以及通信领域中的通讯录文件、图库文件、微信表情文件等。

在本公开实施例中,云平台可以通过fetch接口接收终端发送的数据同步请求,从数据同步请求中提取出文件名称。需要说明的是,待同步文件可以存储在终端、云平台或者存储在数据存储端。对于存储在终端中的待同步文件,云平台可以将待同步文件直接存储到云平台中,无需从数据存储端拉取数据;对于存储在云平台中的待同步文件,云平台可以不执行对该待同步文件的存储操作,即云平台不执行实际意义上的数据同步操作。对于存储在数据存储端中的待同步文件,云平台需要从数据存储端拉取待同步文件,将拉取的待同步文件上传至存储桶内进行存储。

S120、将数据同步请求输入请求队列中,请求队列中包括一个或多个数据同步请求。

在本公开实施例中,请求队列指的是一种特殊的线性表,只允许在请求队列的队头执行删除操作,该操作可称为出队操作,在请求队列的队尾执行插入操作,该操作可称为入队操作。即云平台将接收到的数据同步请求从请求队列的队尾输入到请求队列中,并从请求队列的队头提取数据同步请求。可选的,云平台可以将多个数据同步请求输入至同一请求队列中,也可以将多个数据同步请求输入至不同的请求队列中,使一个请求队列中包括一个或多个数据同步请求。

在本公开一些实施例中,请求队列的数量为至少两个,相应的,参见图3,S120包括:

S1201、确定每个请求队列的负载数据量;

S1202、将数据同步请求输入至至少两个请求队列中负载数据量最小的请求队列。

在本公开实施例中,负载数据量指的是请求队列中已入队的数据同步请求的数据量与该请求队列的负载载荷的比值。具体的,云平台预先配置每个请求队列的负载载荷,当云平台接收到数据同步请求时,计算每个请求队列已入队的数据同步请求的数据量和该请求队列的负载载荷之间的比值;进一步的,根据比值确定负载数据量最小的请求队列,将数据同步请求输入至负载数据量最小的请求队列。

例如,云平台预先配置两个请求队列,每个请求队列中的负载载荷是32兆字节数。云平台在接收到至少一个数据同步请求时,确定其中一个请求队列中已入队的数据量为31.5兆字节数,另一个请求队列中已入队的数据量为24兆字节数,则确定24兆字节数对应的请求队列的负载数据量小,将数据同步请求输入至24兆字节数对应的请求队列中。

在本公开另一些实施例中,云平台也可以将数据同步请求输入至任意一个请求队列中。

S130、提取请求队列中的目标同步请求,并将目标同步请求转发至数据存储端。

在本公开实施例中,目标同步请求指的是从请求队列的队头出队的数据同步请求,云平台将目标同步请求转发至数据存储端。

在本公开一些实施例中,请求队列的数量为至少两个,相应的,S130中提取请求队列中的目标同步请求的具体步骤,包括:确定每个请求队列的负载数据量;从负载数据量最大的请求队列中提取所述目标同步请求。

具体的,当云平台对请求队列执行出队操作时,计算每个请求队列已入队的数据同步请求的数据量与该请求队列的负载载荷的比值,确定每个请求队列的负载数据量;进一步的,从负载数据量最大的请求队列中提取所述目标同步请求。

例如,云平台预先配置两个请求队列,每个请求队列中的负载载荷是32兆字节数。云平台在接收到至少一个数据同步请求时,确定其中一个请求队列中已入队的数据量为31.5兆字节数,另一个请求队列中已入队的数据量为24兆字节数,则确定31.5兆字节数对应的请求队列的负载数据量大,从31.5兆字节数对应的请求队列中提取目标同步请求。

通过根据每个请求队列的负载数据量对数据同步请求执行入队操作和出队操作,可以使每个请求队列的负载数据量均衡,避免出现数据拥挤的情况,有利于提高后续的数据拉取效率和存储效率。

在本公开一些实施例中,云平台也可以从任意一个请求队列中提取目标同步请求。

在本公开实施例中,云平台可以预先定义执行数据同步请求的相关参数。例如,定义fetch接口的接口参数和存储桶的相关参数。fetch接口的接口参数可以包括数据存储端的第三方地址、数据加密参数和强制覆盖参数。其中,第三方地址可以是URL(UniformResource Locator,统一资源定位器)地址,并对第三方地址进行URL编码;数据加密参数可以是MD5(Message-Digest Algorithm,消息摘要算法)参数,是基于MD5算法对各文件进行加密,生成文件名称对应的校验码,该校验码可以包括文件名称对应的文件的128位校验数据,用于进行数据完整性校验,目的在于检查文件名称对应的文件在传输过程中是否保持完整,以及确认传输到达,数据加密参数的数据类型可以是字符串类型,默认是空。强制覆盖参数是用于判断是否将从数据存储端拉取的数据对云平台上存储的数据进行强制覆盖,强制覆盖参数的数据类型可以是字符串类型,默认值是否,有效值可以是真/假。存储桶的相关参数可以包括存储桶的名称。此外,云平台还可以预先定义存储服务的域名等参数。

在一个可选的实施例中,S130中将数据同步请求转发至数据存储端,包括:如果预先定义的存储桶内不包括待同步文件的文件名称,则将数据同步请求转发至数据存储端。

参见图4,如果预先定义的存储桶内不包括待同步文件的文件名称,则说明存储桶内不包括该文件名称,说明该文件名称及其对应的待同步文件未存储在云平台,需要从数据存储端拉取该文件名称对应的待同步文件,则将数据同步请求转发至数据存储端,以前往数据存储端拉取该文件名称对应的待同步文件。

在一个可选的实施例中,S130中将数据同步请求转发至数据存储端,包括:如果预先定义的存储桶内包括所述文件名称,且包括所述文件名称对应的预设强制参数,将所述目标同步请求转发至数据存储端。

参见图4,如果预先定义的存储桶内包括所述文件名称,说明该文件名称存储在云平台,或者,该文件名称及其对应的数据存储在云平台;进一步的,如果预先定义的存储桶内还包括文件名称对应的预设强制参数,且预设强制参数的值为真,说明需要从数据存储端拉取该文件名称对应的待同步文件,则将数据同步请求转发至数据存储端,以前往数据存储端拉取该文件名称对应的待同步文件,以进一步将从数据存储端拉取的待同步文件覆盖存储桶内存储的文件名称,或者覆盖该文件名称及其对应的数据。

S140、接收数据存储端返回的文件名称对应的待同步文件,并对待同步文件执行存储操作。

在本公开实施例中,云平台将数据同步请求转发至数据存储端后,数据存储端将数据同步请求携带的文件名称与预先存储的各文件的文件名称匹配,筛选出文件名称对应的待同步文件,将待同步文件通过URL地址返回至云平台,云平台将接收到的待同步文件直接存储至存储桶内,完成对待同步文件执行存储操作。

具体的,在数据同步请求仅携带该文件名称的情况下,如果预先定义的存储桶内不包括所述文件名称,或者,如果预先定义的存储桶内包括所述文件名称,且包括所述文件名称对应的预设强制参数,云平台通过URL地址接收数据存储端该文件名称对应的待同步文件,并将待同步文件直接存储至存储桶内,完成将存储在数据存储端的数据进行数据同步的过程。

本公开实施例提供的技术方案,云平台接收到终端发送的数据同步请求后,将数据同步请求进行入队管理和出队管理,基于从请求队列中提取的目标同步请求将非本地数据拉取到本地再上传云平台进行对象存储,以实现异步拉取数据,可以使云平台在执行数据拉取任务时所需的服务器成本更可控,能避免为了应对高并发的数据拉取请求下准备大量公网带宽与服务器资源;并且,云平台将目标同步请求转发至数据存储端,以自动从数据存储端拉取待同步文件,无需用户手动将非本地数据拉取到本地再将拉取到本地的数据进行存储;另外,云平台共用一套拉取上传逻辑,即数据同步逻辑,如果场景相同,不需要对相同场景的中每个用户的数据同步逻辑进行维护,大大降低用户的网络开销和人力成本。

如图5所示为另一种数据同步方法的流程示意图。参见图5,该方法包括:

S210、接收终端发送的数据同步请求,数据同步请求携带待同步文件的文件名称。

S220、基于历史入队记录,确定与数据同步请求的请求参数相同的已入队同步请求,并确定已入队同步请求所在的目标请求队列。

在本公开实施例中,请求队列的数量为至少两个。

在本公开实施例中,历史入队记录可以包括已入队同步请求和已入队同步请求的请求参数。请求参数包括:请求执行顺序、请求执行的元素和请求类型中的至少一个。其中,请求执行顺序指的是数据同步请求的执行逻辑,该执行逻辑包括不同数据同步请求之间的关联关系,例如,嵌套关系、因果关系等;请求执行的元素可以包括数据同步请求对应的对象,例如,数据同步请求为图片的同步请求,请求执行的原始为图片数据;请求类型指的是数据同步请求对应的任务类型,例如,数据同步请求为图片类同步请求、电话号码类同步请求。

在本公开实施例中,已入队同步请求可以是与所述数据同步请求相邻的请求,也可以是与所述数据同步请求不相邻的请求,并确定已入队同步请求所在的目标请求队列,以进一步将数据同步请求输入至目标请求队列。

S230、将数据同步请求输入至目标请求队列。

在本公开实施例中将数据同步请求从目标请求队列的队尾输入至目标请求队列。这样,可以将请求参数一致的数据同步请求加入同一请求队列中,有利于保证后续的数据拉取过程和数据存储过程有序进行。

在本公开实施例中,云平台还可以基于每个请求队列的负载数据量和数据请求的请求参数,确定目标请求队列。

具体的,如果云平台预先配置两个请求队列,每个请求队列的负载数据量均较小或者相等,可以初步确定两个请求队列均可以执行入队操作,将这两个请求队列作为可入队队列;接着,获取每个可入队队列中已入队同步请求的请求参数,将当前接收到的数据同步请求的请求参数与已入队同步请求的请求参数比较,筛选出与当前接收到的数据同步请求的请求参数一致的已入队同步请求,并确定已入队同步请求所在的目标请求队列,进一步将当前接收到的数据同步请求输入至目标请求队列中。

S240、基于历史出队记录,确定与已出队同步请求的请求参数相同的待出队的目标同步请求,并确定目标同步请求所在的目标请求队列,从目标请求队列提取目标同步请求。

在本公开实施例中,请求队列的数量为至少两个。

在本公开实施例中,云平台控制请求队列中的数据同步请求出队时,基于历史出队记录,确定与已出队同步请求的请求参数相同的待出队的目标同步请求,已出队同步请求与目标同步请求可以相邻也可以不相邻,并获取每个请求队列中已出队同步请求的请求参数,确定与已出队同步请求的请求参数相同的待出队的目标同步请求,以及确定目标请求所在的目标请求队列,从目标请求队列提取目标同步请求,以对该目标同步请求执行出队操作。

这样,可以将请求参数一致的数据同步请求出队,有利于保证后续的数据拉取过程和数据存储过程有序进行。

在本公开实施例中,云平台还可以基于每个请求队列的负载数据量和数据请求的请求参数,确定目标请求队列,并从目标请求队列中提取目标同步请求。

具体的,如果云平台预先配置两个请求队列,每个请求队列的负载数据量均较大或者相等,可以初步确定两个请求队列均可以执行出队操作,将这两个请求队列作为可出队队列;接着,获取每个可出队队列中已出队同步请求的请求参数,将待出队的数据同步请求的请求参数与已出队同步请求的请求参数比较,筛选出与已出队同步请求的请求参数一致的待出队的目标同步请求,以及确定目标请求所在的目标请求队列,以进一步目标请求队列提取目标同步请求,以对该目标同步请求执行出队操作。

需要说明的是,本公开实施例不限于上述S210~S240所描述的入队和出队管理方式。在一个可选的实施例中,可以基于每个请求队列的负载数据量控制数据同步请求入队,根据数据通过请求的请求参数和已出队同步请求的请求参数,控制数据同步请求出队;在另一个可选的实施例中,可以根据数据通过请求的请求参数和已入队同步请求的请求参数,控制数据同步请求入队,基于每个请求队列的负载数据量控制数据同步请求出队。

通过上述方式,可以灵活配置入队和出队策略,适应于多种队列管理场景,有利于保证后续的数据拉取过程和数据存储过程有序进行。

在其他实施例中,与S240不同的,服务器也可以从任意一个请求队列中提取目标同步请求。

S250、将目标同步请求转发至数据存储端。

在一个可选的实施例中,数据同步请求还携带该文件名称对应的校验码。相应的,将所述目标同步请求转发至数据存储端,包括:

如果预先定义的存储桶内包括所述待同步文件的文件名称,且所述数据同步请求携带的校验码和存储桶内预先存储的校验码不一致,将数据同步请求转发至数据存储端。

具体的,在数据同步请求还携带该文件名称对应的校验码的情况下,如果存储桶内不包括该文件名称,说明该文件名称及其对应的待同步文件未存储在云平台,需要从数据存储端拉取该文件名称对应的待同步文件,执行将上述数据同步请求转发至数据存储端的操作,以从数据存储端拉取该文件名称对应的待同步文件。

在另一个可选的实施例中,数据同步请求还携带该文件名称对应的校验码,相应的,将所述目标同步请求转发至数据存储端,包括:

如果预先定义的存储桶内包括所述待同步文件的文件名称,且所述数据同步请求携带的校验码和存储桶内预先存储的校验码不一致,将数据同步请求转发至数据存储端。

具体的,在数据同步请求还携带该文件名称对应的校验码的情况下,如果预先定义的存储桶内包括该文件名称,且数据同步请求中的校验码与存储桶内预先定义的校验码不一致,说明该文件名称存储在云平台,但该文件名称对应的待同步文件未存储在云平台,需要从数据存储端拉取该文件名称对应的待同步文件,执行将上述数据同步请求转发至数据存储端的操作,以从数据存储端拉取该文件名称对应的待同步文件。

通过上述方式,云平台可以基于数据同步请求携带的校验码进行校验,以根据校验结果从数据存储端拉取待同步数据,可以提高数据同步的准确性。

S260、接收数据存储端返回的文件名称对应的待同步文件,并对待同步文件执行存储操作。

在本公开实施例中,云平台可以通过数据存储端的地址接收数据存储端返回的文件名称对应的待同步文件。

在一个可选的实施例中,对待同步文件执行存储操作,包括:在数据同步请求还携带该文件名称对应的校验码的情况下,如果预先定义的存储桶内不包括所述文件名称,确定数据同步请求携带的校验码和数据存储端返回的所述待同步文件携带的校验码是否一致;

如果一致,对所述待同步文件执行存储操作。

具体的,在数据同步请求还携带该文件名称对应的校验码的情况下,如果预先定义的存储桶内不包括该文件名称,则从数据存储端拉取该文件名称对应的数据作为待同步文件,如果待同步文件携带的校验码和存储桶内预先存储的校验码一致,则待同步文件通过校验,将待同步文件存储至预先定义的存储桶内,完成对待同步文件执行存储操作。

在另一个可选的实施例中,对待同步文件执行存储操作,包括:在数据同步请求还携带该文件名称对应的校验码的情况下,如果预先定义的存储桶内包括所述文件名称,确定数据同步请求携带的校验码和存储桶内预先定义的校验码是否一致;

如果不一致,确定数据同步请求携带的校验码和数据存储端返回的所述待同步文件携带的校验码是否一致;

如果一致,对所述待同步文件执行存储操作。

具体的,在数据同步请求还携带该文件名称对应的校验码的情况下,如果预先定义的存储桶内包括该文件名称,且数据同步请求携带的校验码和待同步文件携带的校验码不一致,说明待同步文件未存储在云平台,则从数据存储端拉取该文件名称对应的数据,作为待同步文件,如果待同步文件携带的校验码和存储桶内预先存储的校验码一致,则待同步文件通过校验,将待同步文件存储至预先定义的存储桶内,完成对待同步文件执行存储操作。

通过上述方式,云平台可以基于数据同步请求携带的校验码进行校验,以根据校验结果将待同步数据进行存储,可以提高数据同步的准确性。

如图6所示为另一种数据同步方法的流程示意图。参见图6,该方法包括:

S310、接收终端发送的数据同步请求,数据同步请求携带待同步文件的文件名称。

S320、提取数据同步请求的数据源标签。

在本公开实施例中,数据源指的是发送数据同步请求的终端,数据源标签指的是终端的标签,所述数据源标签可以是终端的网络地址也可以是终端的属性数据,属性数据可以包括终端的型号、操作系统类别、终端名称以及产品编码等。

S330、将数据源标签与请求队列的数据源标签匹配,将匹配成功的请求队列确定为目标请求队列。

在本公开实施例中,云平台预先创建至少两个请求队列,其中一个请求队列用于管理重要的数据同步请求,其他队列用于管理非重要的数据同步请求,且分别为管理重要的数据同步请求的请求队列和管理非重要的数据同步请求的请求队列配置不同的标签。

具体的,云平台接收到数据同步请求后,提取数据源标签,数据源标签与请求队列的数据源标签匹配,找到与数据同步请求的数据源的标签匹配的请求队列的数据源标签,将该请求队列作为目标请求队列,以进一步将数据同步请求输入至目标请求队列中。

S340、将数据同步请求输入至目标请求队列中。

在本公开实施例中,基于数据源标签,将数据同步请求输入至目标请求队列中。

通过提取数据同步请求的数据源标签和请求队列的数据源标签,将数据同步请求输入至对应的目标请求队列,当客户重要程度不同时,将不同客户发送的数据同步请求输入至不同的请求队列中进行管理,以实现对不同客户的终端发送的数据同步请求进行分类管理,并有利于提高数据同步的有序性和效率。

S350、提取请求队列中的目标同步请求,并将目标同步请求转发至数据存储端。

在本公开实施例中,提取请求队列中的目标同步请求,包括:基于历史出队记录,确定与已出队的数据源标签一致的请求队列,作为目标请求队列;从所述目标请求队列中提取所述目标同步数据。

通过上述方式,可以基于数据源标签控制数据同步请求出队,以进一步提高优化队列管理效果,保证数据同步请求出队过程中的有序性,进一步提高数据拉取过程的有序性和高效性。

在本公开实施例中,还可以基于数据同步请求的数据源标签、请求队列的数据源标签以及请求队列的负载数据量,控制数据同步请求入队和出队。需要说明的是,此处描述的入队和出队的控制策略可以参考上述描述,此处不再详细赘述。

在本公开实施例中,还可以基于数据同步请求的数据源标签、请求队列的数据源标签以及数据同步请求的请求参数,控制数据同步请求入队和出队。需要说明的是,此处描述的入队和出队的控制策略可以参考上述描述,此处不再详细赘述。

在本公开实施例中,还可以基于数据同步请求的数据源标签、请求队列的数据源标签、数据同步请求的请求参数以及请求队列的负载数据量,控制数据同步请求入队和出队。

通过上述方式,可以灵活配置入队和出队策略,适应于多种队列管理场景,有利于保证后续的数据拉取过程和数据存储过程有序进行。

S360、接收数据存储端返回的文件名称对应的待同步文件,并对待同步文件执行存储操作。

在本公开实施例中,云平台将数据同步请求转发至数据存储端后,数据存储端查找数据同步请求携带的文件名称对应的待同步文件。为了提高数据传输效率,数据存储端可以基于预先确定的分片数,对待同步文件进行分片,并向云平台发送待同步文件的分片数据,直至云平台接收到待同步文件的所有分片数据。

具体的,数据存储端预先配置不同文件名称对应的分片下载参数(range)和分片数。参见图4,云平台将目标同步请求转发至数据存储端后,数据存储端提取该文件名称对应的分片下载参数,如果存在分片下载参数,且分片下载参数的值为真,数据存储端基于分片数将该文件名称对应的待同步文件分成至少一组分片数据,将分片数据并发发送至云平台,直至云平台接收到待同步文件的所有分片数据。

例如,数据存储端预先配置的分片数为5,如果待同步文件的文件大小为100兆,数据存储端可以将待同步文件分成5组分片数据,每组分片数据的大小为20兆,将5组分片数据并发发送至云平台,直至云平台接收到待同步文件的5组分片数据。

数据存储端基于分片数向云平台发送分片数据,可以提高待同步文件的拉取效率。

在另一种可选的实施例中,参见图4,云平台也可以直接接收整个的待同步文件,即云平台从数据存储端下载整个的待同步文件。

在一种可选的实施例中,对所述待同步文件执行存储操作,包括:对所述分片数据进行流式存储,直至对最后接收到的所述文件名称对应的分片数据完成存储。

其中,流式存储指的是在接收数据的同时,将接收到的数据进行存储。具体的,云平台接收到数据存储端当前发送的分片数据时,调用数据拉取服务,将数据存储端当前发送的分片数据上传至预先定义的存储桶内,直至对最后接收到的该文件名称对应的分片数据完成存储,完成执行待同步文件的存储操作。

在另一种可选的实施例中,对所述待同步文件执行存储操作,包括:对所述待同步文件进行流式存储,直至对最后接收到的所述文件名称对应的分片数据完成存储。

具体的,云平台接收到数据存储端当前发送的待同步文件后,调用数据拉取服务,将数据存储端发送的待同步文件上传至预先定义的存储桶内,完成执行待同步文件的存储操作。

通过采用流式存储的方式存储数据,将接收到的数据仅存储在存储桶内,在数据拉取服务中不做存储,可以提高待同步文件的存储效率,以提高数据同步效率。

在又一种可选的实施例中,对所述待同步文件执行存储操作,包括:

基于存储桶内预先定义的文件上传参数,对待同步文件进行流式存储,所述文件上传参数包括访问权限和文件存储类型;

或者,基于存储桶内预先定义的文件上传参数,对所述分片数据进行流式存储,直至对最后接收到的所述文件名称对应的分片数据完成存储。

具体的,云平台接收到数据存储端发送的待同步文件或分片数据后,提取存储桶内预先定义的文件上传参数,基于文件上传参数中的访问权限和文件存储类型,将数据存储端当前发送的分片数据上传至预先定义的存储桶内,直至对最后接收到的该文件名称对应的分片数据完成存储,或者,将数据存储端发送的整个待同步文件上传至预先定义的存储桶内,完成执行待同步文件的存储操作。

通过根据文件上传参数存储待同步文件或分片数据,可以提高待同步文件或分片数据的存储准确度。

在本公开实施例中,对待同步文件执行存储操作之后,该方法还包括:确定对待同步文件执行存储操作的执行结果和执行结果对应的反馈信息;通过预先定义的回调地址,将执行结果对应的反馈信息反馈至终端。

具体的,如果云平台成功拉取待同步文件,并对待同步文件执行存储操作之后,生成的反馈信息中的状态码为200,用于提醒用户该文件名称对应的待同步文件拉取和存储成功,并提示待同步文件的文件大小信息。

在本公开实施例中,如果云平台未从数据存储端拉取到待同步文件,或者,不能成功将待同步文件存储至预先定义的存储桶内,重复执行从数据存储端拉取待同步文件的操作,并基于数据同步请求携带的校验码和存储桶内预先存储的校验码重新执行校验操作3次,直至校验码一致,将待同步文件存储至预先定义的存储桶内,生成反馈信息,反馈信息中的状态码为200,用于提醒用户该文件名称对应的待同步文件拉取和存储成功。

在本公开实施例中,云平台还可以实时检测终端、云平台和所述数据存储端之间的网络状态、数据存储端的地址、数据存储端的源站以及是否存在同名文件,如果终端、云平台和数据存储端之间的网络状态出现异常、数据存储端的地址错误、数据存储端的源站异常,和/或,存在同名文件或者文件不存在,生成对应的异常反馈信息,反馈信息中的状态码为403,并将异常反馈信息反馈至终端,用于提醒用户拉取过程存在异常。如果云平台不能将拉取的待同步文件进行存储,生成对应的异常反馈信息,反馈信息中的状态码为500,并将异常反馈信息反馈至终端,用于提醒用户存储过程存在异常。

通过上述方式,在数据同步过程失败时,用户可以及时获取到异常原因,及时采取措施回复数据同步过程,保证数据同步过程有序执行。

以下是本发明实施例提供的数据同步装置的实施例,该装置与上述各实施例的数据同步方法属于同一个发明构思,该装置配置于云平台,在数据同步装置的实施例中未详尽描述的细节内容,可以参考上述数据同步方法的实施例。

如图7所示,数据同步装置包括:数据同步请求接收模块401、入队管理模块402、出队管理模块403、请求转发模块404、数据拉取模块405以及待同步文件存储模块406。

其中,数据同步请求接收模块401,用于接收终端发送的数据同步请求,所述数据同步请求携带待同步文件的文件名称;

入队管理模块402,用于将所述数据同步请求输入请求队列中,所述请求队列中包括一个或多个数据同步请求;

出队管理模块403,用于提取所述请求队列中的目标同步请求;

请求转发模块404,用于将所述目标同步请求转发至数据存储端;

数据拉取模块405,用于接收所述数据存储端返回的所述文件名称对应的待同步文件;

待同步文件存储模块406,用于对所述待同步文件执行存储操作。

本公开实施例提供的技术方案,云平台接收到终端发送的数据同步请求后,将数据同步请求进行入队管理和出队管理,基于从请求队列中提取的目标同步请求将非本地数据拉取到本地再上传云平台进行对象存储,以实现异步拉取数据,可以使云平台在执行数据拉取任务时所需的服务器成本更可控,能避免为了应对高并发的数据拉取请求下准备大量公网带宽与服务器资源;并且,云平台将目标同步请求转发至数据存储端,以自动从数据存储端拉取待同步文件,无需用户手动将非本地数据拉取到本地再将拉取到本地的数据进行存储;另外,云平台共用一套拉取上传逻辑,即数据同步逻辑,如果场景相同,不需要对相同场景的中每个用户的数据同步逻辑进行维护,大大降低用户的网络开销和人力成本。

可选的,所述请求队列的数量为至少两个;入队管理模块402还用于,确定每个所述请求队列的负载数据量;

将所述数据同步请求输入至至少两个所述请求队列中负载数据量最小的请求队列。

可选的,所述请求队列的数量为至少两个;入队管理模块402还用于,基于历史入队记录,确定与所述数据同步请求的请求参数相同的已入队同步请求,并确定所述已入队同步请求所在的目标请求队列;

将所述数据同步请求输入至所述目标请求队列。

可选的,所述请求队列的数量为至少两个;出队管理模块403还用于,确定每个所述请求队列的负载数据量;

从负载数据量最大的请求队列中提取所述目标同步请求。

可选的,所述请求队列的数量为至少两个;出队管理模块403还用于,基于历史出队记录,确定与已出队同步请求的请求参数相同的待出队的目标同步请求,并确定所述目标同步请求所在的目标请求队列;

从所述目标请求队列中提取所述目标同步请求。

可选的,入队管理模块402还用于,提取所述数据同步请求的数据源标签;

将所述数据源标签与所述请求队列的数据源标签匹配,将匹配成功的请求队列确定为所述目标请求队列;

将所述数据同步请求输入至所述目标请求队列中。

可选的,请求转发模块404还用于,如果预先定义的存储桶内不包括所述文件名称,将所述目标同步请求转发至数据存储端。

可选的,请求转发模块404还用于,如果预先定义的存储桶内包括所述文件名称,且包括所述文件名称对应的预设强制参数,将所述目标同步请求转发至数据存储端。

可选的,所述数据存储端基于预先确定的分片数,对所述待同步文件进行分片,并向所述云平台发送待同步文件的分片数据。

可选的,待同步文件存储模块406还用于,对所述分片数据进行流式存储,直至对最后接收到的所述文件名称对应的分片数据完成存储。

可选的,该装置还包括:反馈模块;其中,反馈模块,用于确定对所述待同步文件执行存储操作的执行结果和所述执行结果对应的反馈信息;

通过预先定义的回调地址,将所述执行结果对应的反馈信息反馈至所述终端。

通过本公开实施例提供的一种数据同步装置,实现了大大降低用户的网络开销和人力成本的效果。

本发明实施例所提供的数据同步装置可执行本发明任意实施例所提供的数据同步方法,具备执行方法相应的功能模块和有益效果。

以下是本发明实施例提供的云平台的实施例,该云平台与上述各实施例的数据同步方法属于同一个发明构思,在云平台的实施例中未详尽描述的细节内容,可以参考上述数据同步方法的实施例。

参见图8,本实施例提供了一种云平台,其包括:一个或多个处理器520;存储装置510,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器520执行,使得一个或多个处理器520实现本发明实施例所提供的数据同步方法,包括:

接收终端发送的数据同步请求,所述数据同步请求携带待同步文件的文件名称;

将所述数据同步请求输入请求队列中,所述请求队列中包括一个或多个数据同步请求;

提取所述请求队列中的目标同步请求,并将所述目标同步请求转发至数据存储端;

接收所述数据存储端返回的所述文件名称对应的待同步文件,并对所述待同步文件执行存储操作。

当然,本领域技术人员可以理解,处理器520还可以实现本发明任意实施例所提供的数据同步方法的技术方案。

图8显示的云平台仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图8所示,该云平台包括处理器520、存储装置510、输入装置530和输出装置540;云平台中处理器520的数量可以是一个或多个,图8中以一个处理器520为例;云平台中的处理器520、存储装置510、输入装置530和输出装置540可以通过总线或其他方式连接,图8中以通过总线连接为例。

存储装置510作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据同步方法对应的程序指令/模块(例如,数据同步装置中的数据同步请求接收模块401、入队管理模块402、出队管理模块403、请求转发模块404、数据拉取模块405以及待同步文件存储模块406)。

存储装置510可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置510可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置510可进一步包括相对于处理器520远程设置的存储器,这些远程存储器可以通过网络连接至云平台。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置530可用于接收输入的数字或字符信息,以及产生与云平台的用户设置以及功能控制有关的键信号输入,例如可以包括鼠标、键盘和触摸屏中的至少一个。输出装置540可包括显示屏等显示云平台。

以下是本发明实施例提供的数据同步系统的实施例,该数据同步系统与上述各实施例的数据同步方法属于同一个发明构思,在数据同步系统的实施例中未详尽描述的细节内容,可以参考上述数据同步方法的实施例。

参见图1,该系统包括:终端200、云平台500和数据存储端600。

其中,终端200,接收外部输入的数据同步请求,将数据同步请求转发至云平台500,数据同步请求携带待同步文件的文件名称;

云平台500,接收终端发送的数据同步请求,所述数据同步请求携带待同步文件的文件名称;

将所述数据同步请求输入请求队列中,所述请求队列中包括一个或多个数据同步请求;

提取所述请求队列中的目标同步请求,并将所述目标同步请求转发至数据存储端;

接收所述数据存储端返回的所述文件名称对应的待同步文件,并对所述待同步文件执行存储操作;

数据存储端600,接收云平台500发送的数据同步请求;

将数据同步请求携带的待同步文件的文件名称与预先存储的各文件的文件名称匹配,筛选出文件名称对应的待同步文件;

将待同步文件发送至云平台500。

以下是本发明实施例提供的计算机可读存储介质的实施例,该计算机可读存储介质与上述各实施例的数据同步方法属于同一个发明构思,在计算机可读存储介质的实施例中未详尽描述的细节内容,可以参考上述数据同步方法的实施例。

本实施例提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种数据同步方法,应用于云平台,该方法包括:

接收终端发送的数据同步请求,所述数据同步请求携带待同步文件的文件名称;

将所述数据同步请求输入请求队列中,所述请求队列中包括一个或多个数据同步请求;

提取所述请求队列中的目标同步请求,并将所述目标同步请求转发至数据存储端;

接收所述数据存储端返回的所述文件名称对应的待同步文件,并对所述待同步文件执行存储操作。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据同步方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机云平台(可以是个人计算机,服务器,或者网络云平台等)执行本发明各个实施例所提供的数据同步方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:多个diconde文件的图像显示和处理方法、装置和设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!