CN112688905B - 数据传输方法、装置、客户端、服务器及存储介质 - Google Patents
数据传输方法、装置、客户端、服务器及存储介质 Download PDFInfo
- Publication number
- CN112688905B CN112688905B CN201910995678.0A CN201910995678A CN112688905B CN 112688905 B CN112688905 B CN 112688905B CN 201910995678 A CN201910995678 A CN 201910995678A CN 112688905 B CN112688905 B CN 112688905B
- Authority
- CN
- China
- Prior art keywords
- data
- data fragment
- check value
- fragment
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000005540 biological transmission Effects 0.000 title claims abstract description 62
- 239000012634 fragment Substances 0.000 claims abstract description 345
- 230000004048 modification Effects 0.000 claims description 19
- 238000012986 modification Methods 0.000 claims description 19
- 238000012795 verification Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 18
- 238000004891 communication Methods 0.000 abstract description 2
- 230000002688 persistence Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 19
- 101100258315 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) crc-1 gene Proteins 0.000 description 7
- 101100258328 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) crc-2 gene Proteins 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013467 fragmentation Methods 0.000 description 3
- 238000006062 fragmentation reaction Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本公开提供了一种数据传输方法、装置、客户端、服务器及存储介质,属于数据通信领域。所述方法包括:客户端接收目标对象的第一数据分片以及所述第一数据分片的第一校验值;所述客户端生成所述第一数据分片的校验值;所述客户端比较所述第一数据分片的校验值与所述第一校验值确定所述第一数据分片是否准确;其中,生成所述第一数据分片的校验值的算法与生成所述第一校验值的算法相同。上述过程通过对数据分片的校验值进行对比,确保进行存储的数据分片与终端向服务器发送的待存储对象的数据分片是一致的,一定程度上提高了数据传输过程中的可靠性。
Description
技术领域
本公开涉及数据通信领域,特别涉及一种数据传输方法、装置、客户端、服务器及存储介质。
背景技术
传输技术是计算机网络技术的一个重要组成部分,目前通用的传输协议包括超文本传输协议(hypertext transfer protocol,HTTP)、分布式传输系统传输协议(hadoopdistributed file system,HDFS)、网络文件系统传输协议(network files system,NFS)、网络文件服务传输协议(common internet file services,CIFS)等。在传输过程中,有时会出现数据丟失或损坏的问题,为解决这一问题,需要对数据进行校验,确保传输的完整性。
目前的数据校验方法中,客户端上传数据时,在传输协议头域中携带该数据的消息摘要算法值(message-digest algorithm 5,MD5),服务器接收到该数据后,根据接收到的数据计算出一个MD5值,当两个MD5值一致时,说明该数据完整,将该MD5值记录在元数据中,并将该数据及数据的元数据存储在数据持久化层。当客户端发出下载该数据的请求时,服务器从数据持久化层中读取该数据及数据的元数据,对读取的数据计算一个MD5值,将该MD5值与读取的元数据中记录的MD5值进行比较,如果两个MD5值一致,则向客户端发送该数据及数据的元数据,客户端接收到数据后,针对接收的数据计算一个MD5值,将该MD5值与元数据中记录的MD5值进行比较,如果两个MD5值不一致,则说明该数据在下载过程中可能存在数据丢失或损坏。
当通过多协议中任意协议接口对该数据进行任一种修改时,数据的内容会发生变化,相应的数据的MD5值也会发生变化,但是该改变并不会同步到存储于数据持久化层中的元数据中,因此,后续客户端下载的数据的MD5值与元数据中记录的MD5值不一致,导致用户在对数据的完整性进行校验时容易出现错误,在一定程度上降低了数据的可靠性。
发明内容
本公开实施例提供了一种数据传输方法、装置、客户端、服务器及存储介质。能够解决相关技术中数据可靠性不高的技术问题,所述技术方案如下:
一方面,提供了一种数据传输方法,所述方法包括:
客户端接收目标对象的第一数据分片以及所述第一数据分片的第一校验值;
所述客户端生成所述第一数据分片的校验值;
所述客户端比较所述第一数据分片的校验值与所述第一校验值确定所述第一数据分片是否准确;其中,生成所述第一数据分片的校验值的算法与生成所述第一校验值的算法相同。
上述过程通过对数据分片的校验值进行对比,确保进行存储的数据分片与终端向服务器发送的待存储对象的数据分片是一致的,一定程度上提高了数据传输过程中的可靠性。
在一种可能实现方式中,所述方法还包括:
当所述客户端确定所述第一数据分片不准确,则生成错误指示信息,用于指示所述目标对象错误。
在上述实现方式中,当任一数据分片不准确,则说明传输错误,可以在无需下载到所有数据分片后才进行传输错误的判断,大大减少了传输数据量,提高了错误判断的及时性。
在一种可能实现方式中,所述方法还包括:
所述客户端接收所述目标对象的第二数据分片以及所述第二数据分片的第二校验值;
所述客户端生成所述第二数据分片的校验值;
所述客户端比较所述第二数据分片的校验值与所述第二校验值确定所述第二数据分片是否准确;其中,生成所述第二据分片的校验值的算法与生成所述第二校验值的算法相同。
在上述实现方式中,在多个数据分片传输的情况下,还可以基于前后接收到的数据分片来确定传输是否发生错误,保证了校验的准确性。
在一种可能实现方式中,所述生成所述第二数据分片的校验值,具体包括:
所述客户端根据所述第一数据分片的校验值和所述第二数据分片生成所述第二数据分片的校验值。
在上述实现方式中,由于第一数据分片为第二数据分片的前一个分片,其校验值是服务器迭代计算得到的,因此,可以通过同理的迭代计算,来进行校验,保证数据分片的传输顺序的准确性,一旦基于这种方式得到的第二数据分片的校验值与接收到的第二数据分片的第二校验值不符,则很可能出现了传输顺序上的错误。
在一种可能实现方式中,所述客户端生成所述第一数据分片的校验值,具体包括:
根据第一个数据分片以及所述客户端的密钥,生成第一个数据分片的校验值。
客户端的密钥由客户端和服务器共享,且仅为该客户端所独有,不分享给其他客户端,从而基于该密钥进行校验值的生成,可以大大提高数据的安全性,使得其他客户端即使得到数据分片也无法进行校验。
一方面,提供了一种数据传输方法,所述方法包括:
服务器获取目标对象的第一数据分片;
所述服务器生成所述第一数据分片的第一校验值;
向客户端发送目标对象的第一数据分片以及所述第一数据分片的第一校验值。
在一种可能实现方式中,服务器获取目标对象的第二数据分片;
所述服务器生成所述第二数据分片的第二校验值。
在一种可能实现方式中,所述方法还包括:
所述向客户端发送目标对象的第一数据分片以及所述第一数据分片的第一校验值之后,所述方法还包括:
如果接收到所述客户端针对所述第一数据分片的正确指示信息,向所述客户端发送第二数据分片以及所述第二数据分片的第二校验值。
在一种可能实现方式中,所述生成所述第二数据分片的第二校验值,具体包括:
所述服务器根据所述第一数据分片的第一校验值和所述第二数据分片,生成所述第二数据分片的第二校验值。
在一种可能实现方式中,所述服务器生成所述第一数据分片的第一校验值,具体包括:
所述服务器根据第一个数据分片以及所述客户端的密钥,生成所述第一个数据分片的校验值。
在一种可能实现方式中,所述方法还包括:
当接收到对任一数据分片的修改请求时,读取已存储的所述数据分片,响应于所述修改请求对所述数据分片进行修改,得到新的数据分片;
用所述新的数据分片以及对应的特征值替换所述数据分片以及对应的特征值。
第三方面,提供了一种数据传输装置,用于执行上述数据传输方法。具体地,该数据传输装置包括用于执行上述第一方面或上述第一方面的任一种可选方式提供的数据传输方法的功能模块。
第四方面,提供了一种数据传输装置,用于执行上述数据传输方法。具体地,该数据传输装置包括用于执行上述第二方面或上述第二方面的任一种可选方式提供的数据传输方法的功能模块。
第五方面,提供一种客户端,该客户端包括接口和一个或多个处理器,所述一个或多个处理器执行上述第一方面或上述第一方面的任一种可选方式中的方法。
第六方面,提供一种服务器,该服务器包括接口和一个或多个处理器,所述一个或多个处理器执行上述第二方面或上述第二方面的任一种可选方式中的方法。
第七方面,提供一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器加载并执行以实现如上述任一种可选方式中的方法。
附图说明
图1是本公开实施例提供的一种数据传输方法的具体实施环境的示意图;
图2是根据一示例性实施例示出的一种服务器200的框图;
图3是根据一示例性实施例示出的对象存储服务系统的示意图;
图4是根据一示例性实施例示出的一种数据传输方法的交互流程图;
图5是根据一示例性实施例示出的一种数据传输方法的数据流示意图;
图6是根据一示例性实施例示出的一种数据传输方法的交互流程图;
图7是根据一示例性实施例示出的一种数据传输方法的数据流示意图;
图8是根据一示例性实施例示出的一种修改对象数据中第3个数据分片的示意图;
图9是根据一示例性实施例示出的对象数据的多个数据分片以及多个数据分片的特征值的存储示意图;
图10是根据一示例性实施例示出的对多个数据分片中的第3个数据分片进行修改后的存储示意图;
图11是根据一示例性实施例示出的一种数据传输装置的结构示意图;
图12是根据一示例性实施例示出的一种数据传输装置的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
图1是本公开实施例提供的一种数据传输方法的具体实施环境的示意图,参见图1,该实施环境包括:服务器101和客户端102。
服务器101,该服务器可以包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。服务器101用于为支持数据传输的应用程序提供后台服务。例如,服务器101可以用于将对象的数据进行分片处理,得到多个数据分片,并对该多个数据分片进行第一校验值的计算。当接收到客户端的请求时,将存储在数据持久化层中的多个数据分片发送至客户端102,以便客户端102对多个数据分片进行完整性校验。
客户端102,通过无线网络或有线网络与服务器101相连。客户端102可以是应用服务器、移动终端等。客户端102可以作为对象数据的上传者,向服务器发送待存储对象的数据,客户端可以通过下述任一协议的接口进行上传,例如:HTTP传输协议、HDFS传输协议、NFS传输协议、CIFS传输协议等。
客户端102可以泛指多个客户端中的一个,本实施例仅以客户端102来举例说明。本领域技术人员可以知晓,上述客户端设备的数量可以更多或更少。本公开实施例对客户端的数量和设备类型不加以限定。
图2是根据一示例性实施例示出的一种服务器200的框图。参照图2,服务器200包括接口201和一个或多个处理器202。此外,一个或多个处理器202执行上述数据传输方法。其中,接口可以是网络接口卡或主机总线适配器等,本发明实施例对此不作限定。服务器200还可以包括一个电源组件被配置为执行服务器200的电源管理。需要说明的是,客户端与上述图2所示的服务器200的基本结构可以同理,在此不做赘述。另外,该接口可以是一个或多个,可以根据设备的性能需求和网络环境等进行配置,本申请实施例对此不做限定。
参见图3,该图3所示为对象存储服务系统,围绕该图3对本公开实施例中所涉及到的所有应用层进行简要介绍,对象存储服务系统在服务器中运行。如图3所示,该对象存储系统包括对象协议接入层、可移植操作系统(portable operating system interface ofunix,Posix)、分布式传输系统传输协议(hadoop distributed file system,HDFS)接入层、数据持久化层。
对象协议接入层用于在客户端通过网络协议上传对象数据时,对该对象数据进行分片处理,并计算每个数据分片的特征值,将多个数据分片以及多个数据分片的特征值存储在数据持久化层。
客户端可以通过Posix协议接入层和HDFS协议接入层对存储在数据持久化层中的多个数据分片进行操作,该客户端可以是上传对象数据的客户端,也可以是其它客户端,本公开对此不做限定。该操作包括读数据分片的数据内容、写数据分片的数据内容、追加数据分片的数据内容、删除数据分片的数据内容、移动数据分片的数据内容、修改数据分片的数据内容等任一种操作。
数据持久化层用于存储多个数据分片以及每个数据分片的元数据,元数据中包括该数据分片在数据持久化层中的存储位置和该数据分片的特征值,该多个数据分片以及多个数据分片的特征值可以存储在数据持久化层中的一个硬盘上,也可以分别存储在数据持久化层中的多个硬盘上,本公开实施例对此不做限定。
需要说明的是,上述特征值是指根据数据分片的数据内容,采用任一种校验算法计算得到的值,例如,该特征值可以为MD5值。
参见图4和图5,该图4是根据一示例性实施例示出的一种数据传输方法的交互流程图,图5是根据一示例性实施例示出的一种数据传输方法的数据流示意图,具体包括如下步骤:
401、客户端获取目标对象的数据的校验值。
其中,目标对象可以是音频、视频、文档、图片等任一类型的对象,本公开实施例对此不做限定。在步骤401中,对客户端如何获取到该目标对象的数据不做限定,而当客户端需要将该目标对象的数据上传至目标对象存储服务系统时,可以通过在客户端所提供的目标对象存储服务系统的客户端上进行操作,以触发上传流程。当客户端检测到上传操作时,可以基于目标特征值算法,计算该目标对象的数据的特征值,将其作为数据的校验值。
其中,该目标特征值算法可以是MD5、安全哈希算法(secure hashalgorithm,SHA)、循环冗余校验算法(cyclic redundancy check,CRC)等中的任意一种,本公开实施例对此不做限定。
402、客户端向服务器发送上传请求,该上传请求携带该目标对象的数据和该目标对象的校验值。
在步骤402中,客户端获取到目标对象的数据,计算得到目标对象的数据的校验值后,可以自动向服务器发送该目标对象的数据和校验值,也可以在检测到用户的确认指令后,向服务器发送该目标对象的数据和校验值,本公开实施例对此不做限定。本发明实施例中的上传请求,具体可以为客户端发送的写请求,用于向服务器写入目标对象。
403、服务器接收该目标对象的数据和校验值,获取该目标对象的数据的特征值,判断该特征值与该校验值是否一致,当该特征值与该校验值一致时,执行步骤404。
在本公开实施例中,服务器接收到客户端发送的目标对象的数据和校验值后,运用目标特征值算法,对接收到的目标对象的数据进行特征值计算,将该特征值与客户端发送的校验值进行比较,当比较一致时,说明该目标对象的数据在上传过程中没有受到损坏。当比较不一致时,说明该目标对象的数据在上传过程中数据发生损坏,服务器向客户端发送一个错误指示信息,以通知客户端该目标对象的数据发生损坏,客户端接收到错误指示信息后,可以重新对该目标对象的数据进行上传。
404、服务器对该数据进行分片处理,得到多个数据分片。
其中,对数据进行分片处理是将目标对象的数据按照固定大小进行切分,以得到大小在固定大小以内的多个数据分片。例如,一个数据分片的大小可以控制在32kb以内,也即是,上述固定大小可以为32kb。当然,上述切分也可以是按照固定数量切分,本公开实施例对此不做限定。
需要说明的是,服务器可以为该目标对象的数据分配安全密钥和访问密钥,其中,安全密钥为服务器和客户端共享的密钥,不能分享给第三方,访问密钥是公开的一个密钥,所有客户端都可以访问该待存储目标对象。
405、服务器获取各个数据分片的特征值。
在步骤405中,服务器可以基于目标特征值算法分别对该多个数据分片进行特征值的计算。
406、服务器将各个数据分片和各个数据分片的特征值存储在数据持久化层中。
在步骤406中,服务器将各个数据分片的特征值存储在数据持久化层中,可以有下述两种实现方式:
在一种可能的实现方式中,该数据分片中可以包括数据头和数据内容段,服务器可以将各个数据分片的特征值添加至数据分片的数据头中。在一种可能的实现方式中,服务器将各个数据分片的特征值添加至数据分片的尾部,本公开实施例对具体添加至哪个部位不做限定。
需要说明的是,服务器在上述将多个数据分片存储在数据持久化层的过程中可以基于各个数据分片的存储地址以及数据本身,生成该数据的元数据,该元数据可以用于指示数据的存储位置,以便在后续查询或修改等过程中能够基于该元数据进行数据操作。
407、当该数据存储完成时,该服务器向客户端返回存储成功消息。
需要说明的是,该返回存储成功消息也可以是在接收到上传请求时进行,而不必要非在该步骤407的时机完成,以达到及时通知的目的。
本公开实施例提供的方法,客户端获取待存储对象的校验值,客户端向服务器发送待存储对象的数据和该对象的校验值,服务器接收待存储对象的数据和校验值,并验证该待存储对象的特征值,以确认该待存储对象上传完整,服务器对该待存储对象的数据进行分片处理,得到多个数据分片,根据目标特征值算法,获取该多个数据分片的特征值,将各个数据分片和各个数据分片的特征值进行存储。上述过程通过多次校验值的对比,确保进行存储的数据分片与客户端向服务器发送的待存储对象的数据是一致的,一定程度上提高了数据传输过程中的可靠性。
参见图6和图7,该图6是根据一示例性实施例示出的一种数据传输方法的交互流程图,该图7是根据一示例性实施例示出的一种数据传输方法的数据流示意图,具体包括如下步骤:
601、客户端向服务器发送下载请求,该下载请求用于下载目标对象的数据。
在步骤601中,该下载请求中携带分块传输编码标识,该分块传输编码标识可以是超文本传输协议的分块传输形式,即HTTP chunk。
以下载请求的响应为例,一个对象数据在下载消息体里,分为多个数据分片来传输,每个数据分片前有标识该数据分片长度以及数据分片的数据内容的校验信息。
602、服务器响应于客户端的下载请求,从数据持久化层中获取该目标对象的多个数据分片以及各个数据分片的特征值。
603、服务器根据该多个数据分片分别计算每个数据分片的特征值,将该特征值与从数据持久化层中提取出的特征值进行比较。
在步骤603中,服务器从数据持久化层中提取出待下载的多个数据分片后,应用目标特征值算法,对该多个数据分片的特征值进行计算,避免因硬盘损坏等原因导致存储在硬盘中的数据分片的数据内容发生损坏。对计算得到的特征值与服务器提取出的特征值进行比较,当比较结果一致时,说明该数据分片在数据持久化层中没有受到损坏,继续执行步骤604,当任一对特征值比较不一致时,说明该数据分片在数据持久化层中受到损坏,服务器停止向客户端发送该对象数据。
604、当数据分片的特征值比较通过后,服务器分别生成该多个数据分片的校验值。
在步骤604中,服务器生成各个数据分片的校验值可以有下述任一种实现方式:
对于第一个数据分片,可以将该第一个数据分片的特征值作为该第一个数据分片的校验值。
对于第一个数据分片以后的数据分片,为了在后续保证接收到的分片不会发生错误,则可以将步骤603计算得到的各个数据分片的特征值进行迭代计算,以第二数据分片为第二个数据分片为例,可以将第一个数据分片作为第二个数据分片的第一数据分片,根据第一数据分片的第一校验值和第二数据分片,应用目标特征值算法进行计算,将计算结果作为第二数据分片的第二校验值。
例如,待下载的数据共有N个数据分片,对该N个数据分片进行迭代计算,以得到其校验值的过程如下:
crc-1=crc64(chunk-data-1);
上述公式中,crc-1为第一数据分片的第一校验值,chunk-data-1表示第一数据分片,上述公式表示第一数据分片的校验值是根据第一数据分片生成的。下面公式中符合的意义可参考本公式,不再赘述。
而后续的迭代计算过程如下所示:crc-2=crc64(crc-1+chunk-data-2);
crc-3=crc64(crc-2+chunk-data-3);
crc-4=crc64(crc-3+chunk-data-4);
…
crc-N=crc64(crc-N-1+chunk-data-N);
其中,crc-1为第一数据分片的第一校验值,crc-2为第二数据分片的第二校验值,以此类推。
在一种可能的实现方式中,为确保待下载的数据更加安全可靠,在对第一个数据分片的第一校验值进行计算时,可以根据第一个数据分片以及客户端的密钥,生成第一个数据分片的第一校验值,该密钥为上传数据的客户端和服务器共享的密钥,第三方用户需要持有该密钥,才可以对该对象数据进行下载或修改等操作。在第一数据分片的第一校验值的计算中添加密钥的过程如下所示:
crc-1=crc64(key+chunk-data-1);
上述公式中,crc-1为第一数据分片的第一校验值,key为上传数据的客户端和服务器共享的密钥,chunk-data-1表示第一数据分片,上述公式表示第一数据分片的校验值是根据key和第一数据分片生成的。下面公式中符合的意义可参考本公式,不再赘述。
而后续的迭代计算过程如下所示:
crc-2=crc64(crc-1+chunk-data-2);
crc-3=crc64(crc-2+chunk-data-3);
crc-4=crc64(crc-3+chunk-data-4);
…
crc-n=crc64(crc-n-1+chunk-data-n);
需要说明的是,可以采用上述任一种实现方式计算各个数据分片的校验值,本公开实施例对此不做限定。
605、服务器将该多个数据分片以及每个数据分片的校验值发送至客户端。
在步骤605中,在发送第n个数据分片和第n个数据分片的校验值之后,若接收到客户端对该第n个数据分片的正确指示信息,向客户端发送第n+1个数据分片和第n+1个数据分片的校验值,其中,n为大于或等于1且小于N的整数,且N为大于1的整数。若接收到客户端对该第n个数据分片的错误指示信息,用于指示该目标对象错误,则停止发送或者重新发送第n个数据分片。
例如,服务器向客户端发送第一数据分片以及第一数据分片的第一校验值之后,接收到客户端向服务器发送的针对第一数据分片的正确指示信息后,向客户端发送分片顺序在该第一数据分片之后的第二数据分片以及第二数据分片的第二校验值。
606、客户端接收服务器发送的多个数据分片以及每个数据分片的校验值。
607、客户端根据该多个数据分片的校验值对该多个数据分片进行完整性校验,当校验通过时,确定该目标对象下载完成。
在步骤607中,客户端根据多个数据分片的校验值对该多个数据分片进行完整性校验,可以有下述实现方式:该客户端在接收到第一数据分片和第一数据分片的第一校验值后,生成该第一数据分片的校验值;该客户端比较该第一数据分片的校验值与该第一校验值确定该第一数据分片是否准确;其中,生成该第一数据分片的校验值的算法与生成该第一校验值的算法相同。
在一种可选实现方式中,该客户端在接收到第一个数据分片和第一个数据分片的第一校验值后,可以根据第一个数据分片以及该客户端的密钥,生成第一个数据分片的校验值,再进行后续的校验过程。
本公开实施例提供的方法,客户端向服务器发送下载请求,服务器响应客户端的下载请求,从数据持久化层中提取该下载请求对应的多个数据分片和特征值,服务器计算提取的每个数据分片的特征值,与提取出的特征值进行比较,比较一致后计算每个数据分片的第一校验值,将该多个数据分片和对应的第一校验值发送至客户端,客户端接收服务器发送的多个数据分片和对应的第一校验值,对该多个数据分片进行完整性校验,当校验通过时,确定该多个数据分片下载完成。上述对象数据下载的过程,通过多次计算各个数据分片的校验值,确保了各个数据分片在传输过程中的完整性,一定程度上提高了数据在传输过程中的可靠性。
在本公开实施例中,由于在进行数据存储时服务器采用了分片存储以及对应数据分片存储其特征值的方法,因此,可以避免对数据整体的读取和写入,大大降低了发生修改操作时的I/O,也即是,当服务器接收到对任一数据分片的修改请求时,读取已存储的该数据分片,响应于该修改请求对该该数据分片进行修改,得到新的数据分片;用该新的数据分片以及对应的特征值替换该数据分片以及对应的特征值。
如图8所示为本公开实施例提供的一种修改对象数据中第3个数据分片的示意图。客户端用户通过NFS协议、CIFS协议等协议接口对存储在数据持久化层中的第3个数据分片进行修改,服务器响应于客户端的修改请求,并接受修改,服务器计算修改后的第3个数据分片的特征值,并将修改后的第3个数据分片以及重新计算得到的第3个数据分片的特征值存储在数据持久化层中原第3个数据分片以及原第3个数据分片的特征值的存储位置。如图9所示为对象数据的多个数据分片以及多个数据分片的特征值的存储示意图,图10所示为对多个数据分片中的第3个数据分片进行修改后的存储示意图。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图11是本公开实施例提供的一种数据传输装置的结构示意图。参见图11,该装置包括:
接收模块1101,用于接收目标对象的第一数据分片以及该第一数据分片的第一校验值;
生成模块1102,用于生成该第一数据分片的校验值;
校验模块1103,用于比较该第一数据分片的校验值与该第一校验值确定该第一数据分片是否准确;其中,生成该第一数据分片的校验值的算法与生成该第一校验值的算法相同。
在一种可能实现方式中,该装置还包括:
信息生成模块,用于当确定该第一数据分片不准确,则生成错误指示信息,用于指示该目标对象错误。
在一种可能实现方式中,该接收模块还用于接收该目标对象的第二数据分片以及该第二数据分片的第二校验值;
该生成模块还用于生成该第二数据分片的校验值;
该校验模块还用于比较该第二数据分片的校验值与该第二校验值确定该第二数据分片是否准确;其中,生成该第二据分片的校验值的算法与生成该第二校验值的算法相同。
在一种可能实现方式中,该生成模块用于根据该第一数据分片的校验值和该第二数据分片生成该第二数据分片的校验值。
在一种可能实现方式中,该生成模块用于根据第一个数据分片以及该客户端的密钥,生成第一个数据分片的校验值。
功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据传输装置与数据传输的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图12是本公开实施例提供的一种数据传输装置的结构示意图。参见图12,该装置包括:
分片获取模块1201,用于获取目标对象的第一数据分片;
生成模块1202,用于生成该第一数据分片的第一校验值;
发送模块1203,用于向客户端发送目标对象的第一数据分片以及该第一数据分片的第一校验值。
在一种可能实现方式中,该分片获取模块还用于获取目标对象的第二数据分片;
该生成模块还用于生成该第二数据分片的第二校验值。
在一种可能实现方式中,该发送模块还用于如果接收到该客户端针对该第一数据分片的正确指示信息,向该客户端发送第二数据分片以及该第二数据分片的第二校验值。
在一种可能实现方式中,该生成模块用于根据该第一数据分片的第一校验值和该第二数据分片,生成该第二数据分片的第二校验值。
在一种可能实现方式中,该生成模块用于根据第一个数据分片以及该客户端的密钥,生成该第一个数据分片的校验值。
在一种可能实现方式中,该装置还包括:
修改模块,用于当接收到对任一数据分片的修改请求时,读取已存储的该数据分片,响应于该修改请求对该数据分片进行修改,得到新的数据分片;
存储模块,用于用该新的数据分片以及对应的特征值替换该数据分片以及对应的特征值。
需要说明的是:上述实施例提供的数据传输装置在数据传输时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据传输装置与数据传输的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由处理器执行以完成上述实施例中的数据传输方法。例如,该计算机可读存储介质可以是只读存储器(read-only memory,ROM)、随机存取存储器(random accessmemory,RAM)、只读光盘(compact disc read-only memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本发明实施例不仅仅适用于对象存储,还可以适用于块存储、文件存储等,本发明实施例对此不作限定。本发明实施例也适用于对象存储系统、块存储系统和文件存储系统中的数据存储。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
Claims (22)
1.一种数据传输方法,其特征在于,所述方法包括:
客户端向服务器发送下载请求,所述下载请求用于所述服务器获取目标对象的多个数据分片以及各个数据分片的特征值,根据所述各个数据分片分别计算所述各个数据分片的特征值,基于所述各个数据分片计算出的特征值与获取到的特征值相同,生成所述各个数据分片的校验值;
所述客户端接收所述服务器发送的所述目标对象的第一数据分片以及所述第一数据分片的第一校验值;
所述客户端生成所述第一数据分片的校验值;
所述客户端比较所述第一数据分片的校验值与所述第一校验值确定所述第一数据分片是否准确;其中,生成所述第一数据分片的校验值的算法与生成所述第一校验值的算法相同;
当所述客户端确定所述第一数据分片准确,所述客户端向所述服务器发送正确指示信息,所述正确指示信息用于指示所述服务器向所述客户端发送第二数据分片和所述第二数据分片的第二校验值,所述第二数据分片为所述目标对象的多个数据分片中与所述第一数据分片相邻且在所述第一数据分片之后的数据分片。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述客户端确定所述第一数据分片不准确,则生成错误指示信息,用于指示所述目标对象错误。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述客户端接收所述目标对象的第二数据分片以及所述第二数据分片的第二校验值;
所述客户端生成所述第二数据分片的校验值;
所述客户端比较所述第二数据分片的校验值与所述第二校验值确定所述第二数据分片是否准确;其中,生成所述第二数据分片的校验值的算法与生成所述第二校验值的算法相同。
4.根据权利要求3所述的方法,其特征在于,所述生成所述第二数据分片的校验值,具体包括:
所述客户端根据所述第一数据分片的校验值和所述第二数据分片生成所述第二数据分片的校验值。
5.根据权利要求1所述的方法,其特征在于,所述客户端生成所述第一数据分片的校验值,具体包括:
根据所述第一数据分片以及所述客户端的密钥,生成所述第一数据分片的校验值。
6.一种数据传输方法,其特征在于,所述方法包括:
服务器接收客户端发送的下载请求;
所述服务器根据所述下载请求,获取目标对象的多个数据分片以及各个数据分片的特征值;
所述服务器根据所述各个数据分片分别计算所述各个数据分片的特征值;
基于所述各个数据分片计算出的特征值与获取到的特征值相同,所述服务器生成第一数据分片的第一校验值;
所述服务器向所述客户端发送所述目标对象的第一数据分片以及所述第一数据分片的第一校验值;
所述服务器接收所述客户端发送的正确指示信息,向所述客户端发送所述目标对象的第二数据分片和所述第二数据分片的第二校验值,所述第二数据分片为所述目标对象的多个数据分片中与所述第一数据分片相邻且在所述第一数据分片之后的数据分片。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述服务器获取所述目标对象的第二数据分片;
所述服务器生成所述第二数据分片的第二校验值。
8.根据权利要求7所述的方法,其特征在于,所述生成所述第二数据分片的第二校验值,具体包括:
所述服务器根据所述第一数据分片的第一校验值和所述第二数据分片,生成所述第二数据分片的第二校验值。
9.根据权利要求6所述的方法,其特征在于,所述服务器生成所述第一数据分片的第一校验值,具体包括:
所述服务器根据第一数据分片以及所述客户端的密钥,生成所述第一数据分片的第一校验值。
10.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当接收到对任一数据分片的修改请求时,读取已存储的所述数据分片,响应于所述修改请求对所述数据分片进行修改,得到新的数据分片;
用所述新的数据分片以及对应的特征值替换所述数据分片以及对应的特征值。
11.一种数据传输装置,其特征在于,应用于客户端,所述装置包括:
接收模块,用于向服务器发送下载请求,所述下载请求用于所述服务器获取目标对象的多个数据分片以及各个数据分片的特征值,根据所述各个数据分片分别计算所述各个数据分片的特征值,基于所述各个数据分片计算出的特征值与获取到的特征值相同,生成所述各个数据分片的校验值;接收所述服务器发送的所述目标对象的第一数据分片以及所述第一数据分片的第一校验值;
生成模块,用于生成所述第一数据分片的校验值;
校验模块,用于比较所述第一数据分片的校验值与所述第一校验值确定所述第一数据分片是否准确;其中,生成所述第一数据分片的校验值的算法与生成所述第一校验值的算法相同;当所述客户端确定所述第一数据分片准确,向所述服务器发送正确指示信息,所述正确指示信息用于指示所述服务器向所述客户端发送第二数据分片和所述第二数据分片的第二校验值,所述第二数据分片为所述目标对象的多个数据分片中与所述第一数据分片相邻且在所述第一数据分片之后的数据分片。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
信息生成模块,用于当确定所述第一数据分片不准确,则生成错误指示信息,用于指示所述目标对象错误。
13.根据权利要求11或12所述的装置,其特征在于,所述接收模块还用于接收所述目标对象的第二数据分片以及所述第二数据分片的第二校验值;
所述生成模块还用于生成所述第二数据分片的校验值;
所述校验模块还用于比较所述第二数据分片的校验值与所述第二校验值确定所述第二数据分片是否准确;其中,生成所述第二数据分片的校验值的算法与生成所述第二校验值的算法相同。
14.根据权利要求13所述的装置,其特征在于,所述生成模块用于根据所述第一数据分片的校验值和所述第二数据分片生成所述第二数据分片的校验值。
15.根据权利要求13所述的装置,其特征在于,所述生成模块用于根据所述第一数据分片以及所述客户端的密钥,生成所述第一数据分片的校验值。
16.一种数据传输装置,其特征在于,所述装置包括:
分片获取模块,用于接收客户端发送的下载请求;根据所述下载请求获取目标对象的多个数据分片以及各个数据分片的特征值;根据所述各个数据分片分别计算所述各个数据分片的特征值;
生成模块,用于基于所述各个数据分片计算出的特征值与获取到的特征值相同,生成第一数据分片的第一校验值;
发送模块,用于向所述客户端发送所述目标对象的第一数据分片以及所述第一数据分片的第一校验值;
所述发送模块,还用于接收所述客户端发送的正确指示信息,向所述客户端发送所述目标对象的第二数据分片和所述第二数据分片的第二校验值,所述第二数据分片为所述目标对象的多个数据分片中与所述第一数据分片相邻且在所述第一数据分片之后的数据分片。
17.根据权利要求16所述的装置,其特征在于,
所述分片获取模块还用于获取目标对象的第二数据分片;
所述生成模块还用于生成所述第二数据分片的第二校验值。
18.根据权利要求17所述的装置,其特征在于,所述生成模块用于根据所述第一数据分片的第一校验值和所述第二数据分片,生成所述第二数据分片的第二校验值。
19.根据权利要求16所述的装置,其特征在于,所述生成模块用于根据所述第一数据分片以及所述客户端的密钥,生成所述第一数据分片的校验值。
20.根据权利要求16所述的装置,其特征在于,所述装置还包括:
修改模块,用于当接收到对任一数据分片的修改请求时,读取已存储的所述数据分片,响应于所述修改请求对所述数据分片进行修改,得到新的数据分片;
存储模块,用于用所述新的数据分片以及对应的特征值替换所述数据分片以及对应的特征值。
21.一种客户端,其特征在于,所述客户端包括接口和一个或多个处理器,所述一个或多个处理器用于执行权利要求1至权利要求5的任一项所述的方法。
22.一种服务器,其特征在于,所述服务器包括接口和一个或多个处理器,所述一个或多个处理器用于执行权利要求6至权利要求10的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910995678.0A CN112688905B (zh) | 2019-10-18 | 2019-10-18 | 数据传输方法、装置、客户端、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910995678.0A CN112688905B (zh) | 2019-10-18 | 2019-10-18 | 数据传输方法、装置、客户端、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112688905A CN112688905A (zh) | 2021-04-20 |
CN112688905B true CN112688905B (zh) | 2023-04-18 |
Family
ID=75445016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910995678.0A Active CN112688905B (zh) | 2019-10-18 | 2019-10-18 | 数据传输方法、装置、客户端、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112688905B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150133A (zh) * | 2022-06-20 | 2022-10-04 | 浙江大华技术股份有限公司 | 一种数据传输方法、装置及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025444A (zh) * | 2009-09-09 | 2011-04-20 | 腾讯科技(深圳)有限公司 | 资源发布方法、资源下载方法及数据校验系统 |
CN103294569A (zh) * | 2013-04-27 | 2013-09-11 | 深圳市雄帝科技股份有限公司 | 智能卡的cos版本校验方法及校验装置 |
CN103957080A (zh) * | 2014-04-30 | 2014-07-30 | 浙江中控技术股份有限公司 | 一种数据完整性校验方法及系统 |
CN105550276A (zh) * | 2015-12-10 | 2016-05-04 | 广东欧珀移动通信有限公司 | 一种判断网络中音频升级文件完整性的方法及装置 |
CN105630808A (zh) * | 2014-10-31 | 2016-06-01 | 北京奇虎科技有限公司 | 基于分布式文件系统的文件读取、写入方法及节点服务器 |
CN107807792A (zh) * | 2017-10-27 | 2018-03-16 | 郑州云海信息技术有限公司 | 一种基于副本存储系统的数据处理方法及相关装置 |
CN109492436A (zh) * | 2018-11-29 | 2019-03-19 | 深圳市网心科技有限公司 | 一种文件校验方法及相关装置 |
-
2019
- 2019-10-18 CN CN201910995678.0A patent/CN112688905B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025444A (zh) * | 2009-09-09 | 2011-04-20 | 腾讯科技(深圳)有限公司 | 资源发布方法、资源下载方法及数据校验系统 |
CN103294569A (zh) * | 2013-04-27 | 2013-09-11 | 深圳市雄帝科技股份有限公司 | 智能卡的cos版本校验方法及校验装置 |
CN103957080A (zh) * | 2014-04-30 | 2014-07-30 | 浙江中控技术股份有限公司 | 一种数据完整性校验方法及系统 |
CN105630808A (zh) * | 2014-10-31 | 2016-06-01 | 北京奇虎科技有限公司 | 基于分布式文件系统的文件读取、写入方法及节点服务器 |
CN105550276A (zh) * | 2015-12-10 | 2016-05-04 | 广东欧珀移动通信有限公司 | 一种判断网络中音频升级文件完整性的方法及装置 |
CN107807792A (zh) * | 2017-10-27 | 2018-03-16 | 郑州云海信息技术有限公司 | 一种基于副本存储系统的数据处理方法及相关装置 |
CN109492436A (zh) * | 2018-11-29 | 2019-03-19 | 深圳市网心科技有限公司 | 一种文件校验方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112688905A (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111414334B (zh) | 基于云技术的文件分片上传方法、装置、设备及存储介质 | |
CN112866310B (zh) | Cdn回源的校验方法和校验服务器、cdn集群 | |
US20200128075A1 (en) | System and method for service level agreement based data verification | |
CN104410692B (zh) | 一种用于重复文件上传的方法和系统 | |
CN112565393B (zh) | 文件上传方法、下载方法、装置、计算机设备和存储介质 | |
WO2017215646A1 (zh) | 数据传输方法和装置 | |
US9883006B2 (en) | Techniques to transfer large collection containers | |
CN106105154B (zh) | 数据上载的方法、装置及系统 | |
CN113273163A (zh) | 文件上传方法、文件下载方法和文件管理装置 | |
WO2020147403A1 (zh) | 基于云存储的文件处理方法、系统及计算机设备 | |
CN109905479B (zh) | 文件传输方法和装置 | |
WO2017097106A1 (zh) | 一种文件差量的传输方法以及装置 | |
WO2019057023A1 (zh) | 数据恢复方法、发送/接收装置和计算机可读存储介质 | |
CN113986835A (zh) | FastDFS分布式文件的管理方法、装置、设备及存储介质 | |
CN112688905B (zh) | 数据传输方法、装置、客户端、服务器及存储介质 | |
CN110889143A (zh) | 文件校验方法及装置 | |
CN106203179B (zh) | 一种对文件的完整性校验系统及方法 | |
CN114020522A (zh) | 数据备份方法、装置、电子设备及系统 | |
CN111464258B (zh) | 一种数据校验方法、装置、计算设备及介质 | |
CN111245949A (zh) | 文件归档传输方法、装置及设备 | |
CN115297104B (zh) | 文件上传方法、装置、电子设备和存储介质 | |
CN113806815B (zh) | 一种文件签署方法和系统 | |
CN113900990A (zh) | 文件分片存储方法、装置、设备及存储介质 | |
CN113810477A (zh) | 一种文件上传方法、装置、设备及存储介质 | |
CN113194330A (zh) | 一种碎片化多云视频资源管理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220211 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: No.1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan, 611730 Applicant before: Chengdu Huawei Technologies Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |