CN113938269B - 一种文件分片上传校验方法和系统 - Google Patents

一种文件分片上传校验方法和系统 Download PDF

Info

Publication number
CN113938269B
CN113938269B CN202111528668.XA CN202111528668A CN113938269B CN 113938269 B CN113938269 B CN 113938269B CN 202111528668 A CN202111528668 A CN 202111528668A CN 113938269 B CN113938269 B CN 113938269B
Authority
CN
China
Prior art keywords
data
intermediate object
file
fragment
value
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
Application number
CN202111528668.XA
Other languages
English (en)
Other versions
CN113938269A (zh
Inventor
罗行
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yici Netlink Hangzhou Technology Co ltd
Original Assignee
Yici Netlink Hangzhou Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yici Netlink Hangzhou Technology Co ltd filed Critical Yici Netlink Hangzhou Technology Co ltd
Priority to CN202111528668.XA priority Critical patent/CN113938269B/zh
Publication of CN113938269A publication Critical patent/CN113938269A/zh
Application granted granted Critical
Publication of CN113938269B publication Critical patent/CN113938269B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种文件分片上传校验方法,其中,该方法包括:接收终端上传的目标文件的初始MD5值和文件大小值;接收终端生成的分片数据及其前置MD5中间对象和当前MD5中间对象;将本地接收到的分片数据和前置MD5中间对象在数据层合并,并判断合并的结果与终端生成的当前MD5中间对象是否一致,若是,输出分片数据的校验正确信息;在所有分片数据上传及校验完成之后,根据最后一个分片数据的当前MD5中间对象确定目标文件的接收MD5值,判断接收MD5值与初始MD5值是否一致,若是,输出文件校验正确信息。通过本申请,解决了分片上传的校验速度较慢的问题,上传结束后无需再将各个分片数据合并,从而节省了合并动作所需的算力,提升了文件校验速度。

Description

一种文件分片上传校验方法和系统
技术领域
本申请涉及数据处理技术领域,特别是涉及一种文件分片上传校验方法和系统。
背景技术
分片式文件上传方法相比较于传统的整体文件上传方法具有如下优点:
1.能够完全利用带宽并行上传,其上传效率较高;
2.文件存储时不受限于单一磁盘的空间大小,即使一个磁盘的空间不够,也可以将剩余的分片数据分摊到额外的磁盘内存储,存储起来灵活性更强;
3.上传过程中,若某个分片出现异常,可以根据该分片的上下文信息(保存在与其关联的其他分片中),通过一些常见算法对异常分片进行恢复,降低了数据丢失风险。
在分片上传完成后,需要对文件的正确性进行校验。在相关技术中,上传完成后,通过合并各个分片信息,并计算合并结果的MD5(Message-Digest Algorithm,信息摘要算法第五版)值,之后,再将计算得到的MD5值与上传之前文件的MD5值进行比较,以判断接收的文件是否正确。但是,该种校验方式中,由于在接收端合并分片信息的过程需要消耗较大的算力,导致文件校验过程效率较低。
目前针对相关技术中文件分片上传的校验方法效率低的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种文件分片上传方法和系统,以至少解决相关技术中分片文件上传的校验方法效率低的问题。
第一方面,本申请实施例提供了一种文件分片上传校验方法,应用在通讯存储场景下,所述方法包括:
接收终端上传的目标文件的初始MD5值和文件大小值;
接收所述终端生成的分片数据及其前置MD5中间对象和当前MD5中间对象,其中,所述当前MD5中间对象是所述前置MD5中间对象与所述分片数据在数据层的合并结果;
将本地接收到的所述分片数据和所述前置MD5中间对象在数据层合并,并判断所述合并的结果与所述终端生成的当前MD5中间对象是否一致,若是,输出所述分片数据校验正确信息;
在所有分片数据上传及校验完成之后,根据最后一个分片数据的当前MD5中间对象确定所述目标文件的接收MD5值,判断所述接收MD5值与所述初始MD5值是否一致,若是,输出文件校验正确信息。
在其中一些实施例中,所述在所有分片数据上传及校验完成之后,所述方法还包括:
根据各个分片数据的文件大小值,获取所述目标文件的总体文件大小值;
判断所述获取到的总体文件大小值与所述终端上传的文件大小值是否一致,若是,则输出文件大小校验正确信息。
在其中一些实施例中,所述将本地接收到的所述分片数据和所述前置MD5中间对象在数据层合并包括:
本地接收到的所述前置MD5中间对象经过序列化处理得到二进制数据;
将所述二进制数据与所述分片数据在数据层合并得到中间数据;
所述中间数据经过反序列化处理,得到所述分片数据和所述前置MD5中间对象在数据层的合并结果。
在其中一些实施例中,通过MD5哈希算法,基于所述最后一个分片数据的当前MD5中间对象,确定所述目标文件的接收MD5值。
在其中一些实施例中,所述接收终端上传的目标文件的初始MD5值和文件大小值之后,所述方法还包括:
在接收到所述终端发送的上传就绪信号的情况下,发送上传响应至所述终端,
其中,所述上传响应用于指示所述终端上传所述分片数据及其前置MD5中间对象和当前MD5中间对象,
所述上传就绪信号用于指示:所述终端已将目标文件拆分为多个分片数据,以及已经获取到各个分片数据的前置MD5中间对象和当前MD5中间对象。
在其中一些实施例中,所述分片数据以依次或并行的方式上传,所述目标文件在接收端以多个所述分片数据的形式存储。
第二方面,本申请实施例提供了一种文件分片上传校验系统,应用在通讯存储场景下,所述系统包括:接收模块、合并模块、校验模块,其中;
所述接收模块用于接收终端上传的目标文件的初始MD5值和文件大小值,以及,
接收所述终端生成的分片数据及其前置MD5中间对象和当前MD5中间对象,其中,所述当前MD5中间对象是所述前置MD5中间对象与所述分片数据在数据层的合并结果;
所述合并模块用于将所述分片数据和所述前置MD5中间对象在数据层合并;
所述校验模块用于判断所述合并的结果与所述终端生成的当前MD5中间对象是否一致,若是,输出所述分片数据校验正确信息,以及,
在所有分片数据上传及校验完成之后,根据最后一个分片数据的当前MD5中间对象确定所述目标文件的接收MD5值,判断所述接收MD5值与所述初始MD5值是否一致,若是,输出文件校验正确信息。
在其中一些实施例中,所述校验模块还用于:
根据各个分片数据的文件大小值,获取所述目标文件的总体文件大小值;
判断所述获取到的总体文件大小值与所述终端上传的文件大小值是否一致,若是,则输出文件大小校验正确信息。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如第一方面所述的一种文件分片上传校验方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如第一方面所述的文件分片上传校验方法。
相比于相关技术,本申请实施例提供的文件分片上传校验方法,通过对比接收到的分片数据当前MD5中间对象是否与终端上报的当前MD5中间对象一致,对每个分片数据进行正确性校验。进一步的,对于整个目标文件的校验,则通过最后一个分片数据关联的MD5中间直接计算整个文件的MD5值,再通过将计算得到的MD5值与终端上报的文件MD5值进行对比,对整个目标文件进行正确性校验。由于本申请在上传结束后无需将各个分片数据合并,从而节省了合并动作所需的算力,提升了文件校验速度。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种文件分片上传校验方法的应用环境示意图;
图2是本申请实施例的一种文件分片上传校验方法的流程图;
图3是根据本申请实施例的MD5中间对象的关联关系示意图;
图4是根据本申请实施例的一种文件分片上传的校验方法的交互逻辑示意图;
图5是根据本申请实施例的一种文件分片上传校验系统的结构框图;
图6是根据本申请实施例的电子设备的内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
本申请实施例提供的一种文件分片上传校验方法,可以应用在如图1所示的应用环境中,图1是根据本申请实施例的文件分片上传校验方法的应用环境示意图,如图1所示,终端10和服务器11分别为文件上传流程中的两个通讯方。可选的,终端10作为上传方,服务器11作为接收方。在终端一侧,将目标文件拆分为多个分片数据之后,以依次/并行的方式将各个分片数据及其对应的MD5中间对象上传至服务器11;在服务器一侧,可以根据最后一个分片数据的MD5中间对象,计算整个原始文件的MD5值,并以此与终端上报的初始MD5值对比以进行正确性校验。由于本申请无需恢复原始文件,即可校验上传文件的正确性,节省了算力同时提升了校验速度。
可选的,本申请提供的文件分片上传的校验方法可以应用在可信通信场景下,其中,终端10可以但不限于是智能手机、平板电脑、笔记本电脑和台式电脑等。服务器11可以是单个服务器或多个服务器组成的集群。另外,终端10和服务器11的角色也可以互相转换,即也可以用服务器11作为上传方,终端10作为接收方,本申请对此不作具体限定。
图2是本申请实施例的一种文件分片上传的校验方法的流程图,如图2所示,该流程包括如下步骤:
S201,接收终端上传的目标文件的初始MD5值和文件大小值;
其中,该初始MD5值是终端通过信息摘要算法处理目标文件获得。需要说明的是,该信息摘要算法简单来说,其可以将任意长度的信息/数据经过处理之后,输出对应的数字指纹。其对于一个输入将只会得到一个唯一的输出,若两个输入信息源相同,则输出的MD5值肯定相同,反之,若两个输入信息源不同,则输出的MD5值则肯定不同。
在本实施例中,通过比对上传之前的文件MD5值和上传之后另一端接收到的文件MD5值,来校验上传文件的正确性。
S202,接收终端生成的分片数据及其前置MD5中间对象和当前MD5中间对象,其中,当前MD5中间对象是前置MD5中间对象与分片数据在数据层的合并结果;
其中,该分片数据是在对目标文件进行文件分片处理之后得到的拆分结果;文件分片处理流程即按照一些预设规则,将一个文件整体拆分为多个部分,每一个部分即对应于一个分片数据。
进一步的,终端可以采用依次或并行的方式将各个分片数据发送至服务器。需要说明的是,每个分片数据的前置MD5对象和当前MD5对象都是唯一的,且由于其数据结构简单,在文件上传过程中,其不易出现传输错误。
为方便理解,图3是根据本申请实施例的MD5中间对象的关联关系示意图,如图3所示,其中,PART_(1……N)分别为编号为1……N的分片数据,Md5_ctx_ (1.2.3……N)分别编号为1……N的分片数据对应的当前MD5中间对象。
如图3所示,在PART_1作为目标分片数据的情况下,其前置MD5中间对象(Md5_ctx_0)与当前MD5中间对象(Md5_ctx_1)之间满足:Md5_ctx_0 + PART_1 = Md5_ctx_1。
依次类推,则可以用前置MD5中间对象(Md5_ctx_N-1),表示写入当前分片(PART_N)之前的所有分片数据时生成的MD5中间对象;可以用当前MD5对象(Md5_ctx_N),表示写入了当前分片(PART_N)以及(PART_N)之前的所有分片数据时生成的中间对象。
S203,将本地接收到的分片数据和前置MD5中间对象在数据层合并,并判断合并的结果与终端生成的当前MD5中间对象是否一致,若是,输出所述分片数据校验正确信息;
需要说明的是,各个分片数据的上传过程中,由于网络原因可能会导致丢帧等数据上传错误情况。
由于MD5中间对象的特性,其本身并不易传输出错,并且,无论是在发送端和接收端,在每个分片数据的前置MD5对象上添加该分片数据,固定地可以得到其当前MD5中间对象;
因此,可以基于上述特点,通过对比终端上接收到的分片数据和前置MD5中间对象的合并结果,是否与当前MD5中间对象一致,判断分片文件是否正确上传。
S204,在所有分片数据上传及校验完成之后,根据最后一个分片数据的当前MD5中间对象确定目标文件的接收MD5值,判断接收MD5值与初始MD5值是否一致,若是,输出文件校验正确信息;
其中,由于最后一个分片数据的当前MD5中间对象基于之前所有的分片数据和MD5中间对象叠加合并得到,而目标文件则由这些分片数据组成,因此,根据最后一个分片数据关联的当前MD5中间对象,即可直接计算本地接收到的整个目标文件的MD5值,再将该MD5值与终端上报的初始MD5值进行比较,即可判断整个目标文件是否上传错误,无需再合并各个分片数据进行MD5校验。
通过上述步骤S201至S204,相比较于相关技术需要在接收端将多个分片数据合并的校验方法,本申请实施例根据最后一个分片数据的当前MD5中间对象确定目标文件的接收MD5值,并以此与终端上报的初始MD5值对比以进行文件校验。本实施例无需将上传的分片数据合并,即可实现对整个文件的正确性校验。通过本申请,节省了算力,提升了分片文件上传的校验速度。
在其中一些实施例中,终端上传的数据还包括各个分片数据的序号,本申请提供的文件分片上传校验方法,除可以对整个目标文件的正确性进行校验之外,还可以对单个分片文件的正确性进行校验,具体包括:
将本地接收到的分片数据和前置MD5中间对象在数据层合并,并判断合并的结果与终端上生成的当前MD5中间对象是否一致,若是,输出该分片数据的校验正确信息。
需要说明的是,在分片上传中,无论是在发送端还是接收端,一个分片数据的前置MD5对象和其分片数据合并的结果固定等于其当前MD5对象。因此,若服务器本地计算的合并结果与终端上生成的当前MD5对象一致,即可证明该分片数据上传正确,反之,则分片数据上传出错。本申请应用MD5中间对象的上下文信息校验单个分片数据的正确性,无需再针对每个分片数据计算其MD5值,从而简化了校验流程。
在其中一些实施例中,终端上传的数据还包括每个分片数据的大小数值,对应的,本申请提供的文件分片上传的正确性校验方法还包括对目标文件大小的校验,具体包括:
首先,根据接收到的各个分片数据的文件大小值,通过累加计算得到接收到的目标文件的总体文件大小值;
其次,通过将计算得到的总体文件大小值与终端上传的目标文件大小值对比,判断文件大小是否异常;若两者大小数值一致,则输出文件大小校验正确信息。
本申请在数据接收侧,无需将各个分片数据合并,各分片数据还是以分片的形式保存。因此,可以使用所有分片数据的大小数值相加得到的总体大小数值,与终端上报的目标文件大小数值进行比较,从而判断文件大小是否异常,提升了校验效率。
在其中一些实施例中,通过将MD5中间对象序列化为二进制数据实现MD5中间对象的传递,其中,将本地接收到的分片数据和前置MD5中间对象在数据层合并包括:
将接收到的分片数据的前置MD5中间对象,通过特定的算法进行序列化处理得到二进制数据;
进一步的,将该二进制数据与该分片数据合并得到中间数据;
最后,再通过算法将该中间数据经过反序列化处理,即得到分片数据和前置MD5中间对象的合并结果。
在其中一些实施例中,本申请中服务器和终端之间建立有交互-响应机制,包括:
服务器接收终端上传的目标文件的初始MD5值和文件大小值之后,会实时检测终端发送的交互信息;在接收到终端发送的上传就绪信号的情况下,发送上传响应至终端,其中,该上传响应用于指示终端上传分片数据和其对应的MD5中间对象,该上传就绪信号指示终端已将目标文件拆分为多个分片数据。
图4是根据本申请实施例的一种文件分片上传校验方法的交互逻辑示意图,如图4所示,A是数据上传方,B是数据接收方,图4中相关术语解释如下:
part_id_n:分片序号;
part_size_n:分片序号为n的分片大小;
src_part_data_n:上传前原始文件中分片序号为n的分片数据;
dst_part_data_n:上传之后,接收到的序号为n的分片数据;
dst_file_size:分片上传完成后,接收到的文件总大小;
file_md5:上传前整个文件的md5值;
dst_file_md5:分片上传完成后,接收端计算出来的整个文件的md5值;
md5_ctx:计算文件md5值时创建的中间对象;
md5_ctx_n-1:md5_ctx只写入了part_n分片之前的所有分片数据时生成的md5中间对象(part_n分片的前置md5对象);
md5_ctx_n:在md5_ctx_n-1基础上,写入part_n分片的数据之后生成的md5中间对象,也可以理解为:md5_ctx写入part_n以及part_n之前所有数据后生成的md5中间对象(part_n分片的当前md5对象);
进一步的,如图4所示,该交互逻辑包括如下步骤:
步骤一:A希望将文件分片上传到B,A首先发送要上传的文件信息(文件大小、文件md5值)给B,通知B自己准备开始上传了;
步骤二:B收到A的请求后,返回开始上传响应。A收到该响应后,准备上传内容;
步骤三:A将需要上传的文件分隔成不同的分片数据。A拆分文件内容后,准备上传所需的信息。针对每一个分片都需要具备以下上报内容:分片序号、分片大小、分片前置md5对象、分片内容和分片当前md5对象;
步骤四:A依次(或并行)将分片上传信息发送给B。B接收到分片信息后,随即进行分片内容的校验;
步骤五:B获取A上传的分片前置md5对象、分片当前md5对象,对前置md5对象添加本地接收到的分片数据,得到一个新的分片当前md5对象;使用新的分片当前md5对象与接收到的分片当前md5对象做比较,判断是否相等,校验成功后返回分片上传成功响应;
步骤六:A判定本地分片全部发送完成后,发送上传完成请求到B。B收到上传完成请求时,启动本地校验;
步骤七:B校验文件大小,首先把自已接收的分片内容全部取出,根据每一个分片的大小,得到接收到文件的总大小,并与最初A开始上传时上报的文件大小进行比较,判断文件大小是否异常;
步骤八:B校验文件md5值,首先把本地已接收的最后一个分片信息取出,得到最后一个分片的当前md5对象,对当前md5对象进行md5 hash算法处理,得到一个md5值,并将该md5值与最初A开始上传时上报的文件md5值进行比较,判断文件md5值是否异常;
步骤九:B返回校验成功响应。A接收到校验成功响应后,即可认为文件已经上传完成。此时文件在B上面就是分片存储的,不是一个整体文件。
在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例还提供了一种文件分片上传校验系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本申请实施例的一种文件分片上传校验系统的结构框图,该系统可以应用在通讯存储场景下,包括:接收模块50、合并模块51、校验模块52,其中;
接收模块50用于接收终端上传的目标文件的初始MD5值和文件大小值,以及,接收终端生成的分片数据及其前置MD5中间对象和当前MD5中间对象,其中,当前MD5中间对象是前置MD5中间对象与分片数据在数据层的合并结果;
合并模块51用于将分片数据和前置MD5中间对象在数据层合并;
校验模块52用于判断合并的结果与终端生成的当前MD5中间对象是否一致,若是,输出分片数据校验正确信息,以及,
在所有分片数据上传及校验完成之后,根据最后一个分片数据的当前MD5中间对象确定目标文件的接收MD5值,判断接收MD5值与初始MD5值是否一致,若是,输出文件校验正确信息。
在其中一些实施例中,校验模块52还用于:根据各个分片数据的文件大小值,获取目标文件的总体文件大小值;
判断获取到的总体文件大小值与终端上传的文件大小值是否一致,若是,则输出文件大小校验正确信息。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种文件分片上传校验方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,图6是根据本申请实施例的电子设备的内部结构示意图,如图6所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图6所示。该电子设备包括通过内部总线连接的处理器、网络接口、内存储器和非易失性存储器,其中,该非易失性存储器存储有操作系统、计算机程序和数据库。处理器用于提供计算和控制能力,网络接口用于与外部的终端通过网络连接通信,内存储器用于为操作系统和计算机程序的运行提供环境,计算机程序被处理器执行时以实现一种文件分片上传校验方法,数据库用于存储数据。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种文件分片上传校验方法,其特征在于,应用在通讯存储场景下,所述方法包括:
接收终端上传的目标文件的初始MD5值和文件大小值;
接收所述终端生成的分片数据及其前置MD5中间对象和当前MD5中间对象,其中,所述当前MD5中间对象是所述前置MD5中间对象与所述分片数据在数据层的合并结果,
其中,所述前置MD5中间对象是写入第N个分片数据之前的所有分片数据时生成的MD5中间对象,所述MD5中间对象是计算文件MD5值时创建的中间对象;
将本地接收到的所述分片数据和所述前置MD5中间对象在数据层合并得到用于校验的合并结果,并判断所述用于校验的合并结果与所述终端生成的当前MD5中间对象是否一致,若是,输出所述分片数据的校验正确信息,其中,所述将本地接收到的所述分片数据和所述前置MD5中间对象在数据层合并包括:本地接收到的所述前置MD5中间对象经过序列化处理得到二进制数据,将所述二进制数据与所述分片数据在数据层合并得到中间数据,所述中间数据经过反序列化处理,得到所述用于校验的合并结果;
在所有分片数据上传及校验完成之后,根据最后一个分片数据的当前MD5中间对象确定所述目标文件的接收MD5值,判断所述接收MD5值与所述初始MD5值是否一致,若是,输出文件校验正确信息。
2.根据权利要求1所述的方法,其特征在于,所述在所有分片数据上传及校验完成之后,所述方法还包括:
根据各个分片数据的文件大小值,获取所述目标文件的总体文件大小值;
判断所述获取到的总体文件大小值与所述终端上传的文件大小值是否一致,若是,则输出文件大小校验正确信息。
3.根据权利要求1所述的方法,其特征在于,所述将本地接收到的所述分片数据和所述前置MD5中间对象在数据层合并包括:
本地接收到的所述前置MD5中间对象经过序列化处理得到二进制数据;
将所述二进制数据与所述分片数据在数据层合并得到中间数据;
所述中间数据经过反序列化处理,得到所述分片数据和所述前置MD5中间对象在数据层的合并结果。
4.根据权利要求1所述的方法,其特征在于,通过MD5哈希算法,基于所述最后一个分片数据的当前MD5中间对象,确定所述目标文件的接收MD5值。
5.根据权利要求1所述的方法,其特征在于,所述接收终端上传的目标文件的初始MD5值和文件大小值之后,所述方法还包括:
在接收到所述终端发送的上传就绪信号的情况下,发送上传响应至所述终端,
其中,所述上传响应用于指示所述终端上传所述分片数据及其前置MD5中间对象和当前MD5中间对象,
所述上传就绪信号用于指示:所述终端已将目标文件拆分为多个分片数据,以及已经获取到各个分片数据的前置MD5中间对象和当前MD5中间对象。
6.根据权利要求1所述的方法,其特征在于,
所述分片数据以依次或并行的方式上传;
所述目标文件在接收端以多个所述分片数据的形式存储。
7.一种文件分片上传校验系统,其特征在于,应用在通讯存储场景下,所述系统包括:接收模块、合并模块、校验模块,其中;
所述接收模块用于接收终端上传的目标文件的初始MD5值和文件大小值,以及,
接收所述终端生成的分片数据及其前置MD5中间对象和当前MD5中间对象,其中,所述当前MD5中间对象是所述前置MD5中间对象与所述分片数据在数据层的合并结果,其中,所述前置MD5中间对象是写入第N个分片数据之前的所有分片数据时生成的MD5中间对象,所述MD5中间对象是计算文件MD5值时创建的中间对象;
所述合并模块用于将所述分片数据和所述前置MD5中间对象在数据层合并得到用于校验的合并结果;
所述校验模块用于判断所述用于校验的合并结果与所述终端生成的当前MD5中间对象是否一致,若是,输出所述分片数据校验正确信息,其中,将本地接收到的所述分片数据和所述前置MD5中间对象在数据层合并包括:本地接收到的所述前置MD5中间对象经过序列化处理得到二进制数据,将所述二进制数据与所述分片数据在数据层合并得到中间数据,所述中间数据经过反序列化处理,得到所述用于校验的合并结果,以及,
在所有分片数据上传及校验完成之后,根据最后一个分片数据的当前MD5中间对象确定所述目标文件的接收MD5值,判断所述接收MD5值与所述初始MD5值是否一致,若是,输出文件校验正确信息。
8.根据权利要求7所述的系统,其特征在于,所述校验模块还用于:
根据各个分片数据的文件大小值,获取所述目标文件的总体文件大小值;
判断所述获取到的总体文件大小值与所述终端上传的文件大小值是否一致,若是,则输出文件大小校验正确信息。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述的一种文件分片上传校验方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至6中任一项所述的一种文件分片上传校验方法。
CN202111528668.XA 2021-12-15 2021-12-15 一种文件分片上传校验方法和系统 Active CN113938269B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111528668.XA CN113938269B (zh) 2021-12-15 2021-12-15 一种文件分片上传校验方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111528668.XA CN113938269B (zh) 2021-12-15 2021-12-15 一种文件分片上传校验方法和系统

Publications (2)

Publication Number Publication Date
CN113938269A CN113938269A (zh) 2022-01-14
CN113938269B true CN113938269B (zh) 2022-05-13

Family

ID=79289104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111528668.XA Active CN113938269B (zh) 2021-12-15 2021-12-15 一种文件分片上传校验方法和系统

Country Status (1)

Country Link
CN (1) CN113938269B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116781685B (zh) * 2023-06-25 2024-02-13 三峡高科信息技术有限责任公司 一种浏览器大文件上传方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103646082B (zh) * 2013-12-12 2017-04-05 北京奇安信科技有限公司 一种文件校验的方法及装置
CN110059068B (zh) * 2019-04-11 2021-04-02 厦门网宿有限公司 一种分布式存储系统中的数据校验方法及数据校验系统
CN111031110B (zh) * 2019-11-29 2023-01-24 山东英信计算机技术有限公司 一种文件上传方法、装置及电子设备和存储介质
CN112905542A (zh) * 2019-12-03 2021-06-04 华为技术有限公司 一种文件处理方法、装置、服务器、设备及存储介质
CN112532740B (zh) * 2020-12-11 2022-11-15 平安科技(深圳)有限公司 文件上传方法和装置、文件校验方法和装置
CN113079219A (zh) * 2021-04-12 2021-07-06 北京明略昭辉科技有限公司 一种大文件分片上传方法和系统

Also Published As

Publication number Publication date
CN113938269A (zh) 2022-01-14

Similar Documents

Publication Publication Date Title
US9934138B1 (en) Application testing on a blockchain
CN107819828B (zh) 数据传输方法、装置、计算机设备和存储介质
US11256558B1 (en) Prioritized data rebuilding in a dispersed storage network based on consistency requirements
CN109361740B (zh) 一种区块链的区块生成方法、装置、设备和介质
CN109831487B (zh) 分片文件验证方法及终端设备
CN109496419B (zh) 文件处理方法、装置和系统
US10372357B2 (en) Securely recovering stored data in a dispersed storage network
WO2019144761A1 (zh) 一种数据同步方法和分布式系统、设备
US10652350B2 (en) Caching for unique combination reads in a dispersed storage network
KR102363271B1 (ko) 에러 정정 코드에 기초한 공유 블록체인 데이터 저장의 데이터 보안
CN110019873B (zh) 人脸数据处理方法、装置及设备
CN113938269B (zh) 一种文件分片上传校验方法和系统
CN110989934B (zh) 区块链节点数据存储方法、区块链系统及区块链节点
KR102430135B1 (ko) 에러 정정 코드에 기초하는 동적 블록체인 데이터 저장
CN111159100A (zh) 区块链文件存取方法、装置、计算机设备及存储介质
CN112532740B (zh) 文件上传方法和装置、文件校验方法和装置
US10853892B2 (en) Social networking relationships processing method, system, and storage medium
US11314813B2 (en) Apparatus for guaranteeing integrity of state database in blockchain-based environment and method thereof
CN111835871A (zh) 传送数据文件的方法和装置、接收数据文件的方法和装置
KR102117180B1 (ko) 이미지 드로잉 방법, 관련된 디바이스 및 시스템
CN111464258B (zh) 一种数据校验方法、装置、计算设备及介质
US10949645B2 (en) Method, apparatus, and storage medium for data verification
CN115883533A (zh) 文件同步方法、装置、计算机设备及存储介质
CN111460436A (zh) 一种基于区块链的非结构化数据操作方法和系统
US11100018B2 (en) System and method for supporting wire efficient replication using self-descriptive data buffer

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
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A Verification Method and System for File Fragmentation Upload

Effective date of registration: 20221111

Granted publication date: 20220513

Pledgee: Hangzhou Gaoxin Financing Guarantee Co.,Ltd.

Pledgor: Yici netlink (Hangzhou) Technology Co.,Ltd.

Registration number: Y2022330003041

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20230915

Granted publication date: 20220513

Pledgee: Hangzhou Gaoxin Financing Guarantee Co.,Ltd.

Pledgor: Yici netlink (Hangzhou) Technology Co.,Ltd.

Registration number: Y2022330003041

PC01 Cancellation of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A Method and System for Verifying File Fragmentation Upload

Effective date of registration: 20230926

Granted publication date: 20220513

Pledgee: Hangzhou Gaoxin Financing Guarantee Co.,Ltd.

Pledgor: Yici netlink (Hangzhou) Technology Co.,Ltd.

Registration number: Y2023330002186

PE01 Entry into force of the registration of the contract for pledge of patent right