一种文件传输方法、装置、电子设备和介质制造方法及图纸

技术编号:36537333 阅读:34 留言:0更新日期:2023-02-01 16:25
本公开实施例提供了一种文件传输方法、装置、电子设备和介质,所述方法包括:获取客户端并行上传的同一个文件的各个分片,并获取各个所述分片分别对应的进行哈希计算前的第一哈希计算状态和进行哈希计算后的第二哈希计算状态;采用各个所述分片分别对应的第一哈希计算状态和第二哈希计算状态验证各个所述分片是否上传成功;在确定各个所述分片均上传成功的情况下,采用各个所述分片分别对应的第一哈希计算状态和第二哈希计算状态验证各个所述分片是否存在上下文关系;在确定各个所述分片均存在上下文关系的情况下,从所述文件的最后一个分片对应的第二哈希计算状态中导出针对所述文件的完整哈希值。兼容分片并行上传和获取整个文件的完整哈希值。取整个文件的完整哈希值。取整个文件的完整哈希值。

【技术实现步骤摘要】
一种文件传输方法、装置、电子设备和介质


[0001]本公开涉及计算机
,特别是涉及一种文件传输方法、一种文件传输装置、一种电子设备和一种计算机可读存储介质。

技术介绍

[0002]对于文件上传,特别是大文件的上传,较为通用的做法是分片并行上传。与此同时,文件管理系统中,也常使用哈希值来校验文件的完整性和可信度,并作为文件的指纹用于标识文件。在很多应用场合,文件的完整哈希值是必须的,并且重新计算一般需要较长时间或较多资源。
[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]图1是本公开实施例提供的一种文件传输方法的步骤流程图;
[0028]图2是本公开实施例提供的另一种文件传输方法的步骤流程图;
[0029]图3是本公开实施例的一种服务器中对分片进行哈希计算的流程示意图;
[0030]图4是本公开实施例的一种服务器中验证各个分片的上下文关系并输出文件完整哈希值的流程示意图;
[0031]图5是本公开实施例提供的又一种文件传输方法的步骤流程图;
[0032]图6是本公开实施例的一种客户端中对分片进行哈希计算的流程示意图;
[0033]图7是本公开实施例提供的一种文件传输系统的结构示意图;
[0034]图8是本公开实施例提供的一种文件传输装置的结构框图;
[0035]图9是本公开实施例提供的另一种文件传输装置的结构框图。
具体实施方式
[0036]为使本公开的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本公开作进一步详本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件传输方法,其特征在于,应用于服务器,所述方法包括:获取客户端并行上传的同一个文件的各个分片,并获取各个所述分片分别对应的进行哈希计算前的第一哈希计算状态和进行哈希计算后的第二哈希计算状态;采用各个所述分片分别对应的第一哈希计算状态和第二哈希计算状态验证各个所述分片是否上传成功;在确定各个所述分片均上传成功的情况下,采用各个所述分片分别对应的第一哈希计算状态和第二哈希计算状态验证各个所述分片是否存在上下文关系;在确定各个所述分片均存在上下文关系的情况下,从所述文件的最后一个分片对应的第二哈希计算状态中导出针对所述文件的完整哈希值。2.根据权利要求1所述的方法,其特征在于,所述采用各个所述分片分别对应的第一哈希计算状态和第二哈希计算状态验证各个所述分片是否上传成功,包括:对于任一个所述分片,将所述服务器的哈希函数的当前内部状态设置为该分片对应的第一哈希计算状态,并调用所述哈希函数中的Update方法接收该分片对应的字节数据进行哈希计算,将计算完成后的哈希函数的当前内部状态确定为该分片对应的第三哈希计算状态,若该分片对应的第二哈希计算状态与该第三哈希计算状态一致,则确定该分片上传成功。3.根据权利要求1所述的方法,其特征在于,所述采用各个所述分片分别对应的第一哈希计算状态和第二哈希计算状态验证各个所述分片是否存在上下文关系,包括:按顺序遍历各个所述分片,对于下一个所述分片,若该分片对应的第一哈希计算状态与上一个分片对应的第二哈希计算状态一致,则确定该分片与该上一个分片存在上下文关系。4.根据权利要求3所述的方法,其特征在于,所述对于下一个所述分片,若该分片对应的第一哈希计算状态与上一个分片对应的第二哈希计算状态一致,则确定该分片与该上一个分片存在上下文关系之前,还包括:调用所述哈希函数中的Init方法将所述哈希函数的当前内部状态初始化为初始状态;对于其中一个所述分片,若该分片对应的第一哈希计算状态与所述初始状态一致,则确定该分片为所述文件的第一个分片。5.根据权利要求1所述的方法,其特征在于,所述从所述文件的最后一个分片对应的第二哈希计算状态中导出针对所述文件的完整哈希值,包括:调用哈希函数中的Finalize方法从所述文件的最后一个分片对应的第二哈希计算状态中导出针对所述文件的完整哈希值,以确定所述文件上传成功。6.一种文件传输方法...

【专利技术属性】
技术研发人员:吴祺深
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:

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

1