1.一种文件上传方法,其特征在于,所述方法包括:
获取待上传的目标文件,并将所述目标文件拆分成多个分片,所述分片为二进制流形式;
依次遍历所述多个分片中的每个分片,并对于遍历至的当前分片,确定在所述当前分片之前上传的前个分片所对应的历史散列值,所述历史散列值为字符串形式;
对所述前个分片所对应的历史散列值进行转换处理,得到对应的第一数组,对二进制流形式的所述当前分片进行转换处理,得到对应的第二数组;
拼接所述第一数组和所述第二数组,得到第三数组,对所述第三数组进行哈希运算,得到与所述当前分片对应的、且属于字符串形式的当前散列值,并根据所述当前分片和所述当前散列值生成分片上传请求;
将所述分片上传请求发送至服务器,发送的所述分片上传请求用于指示所述服务器基于所述当前分片和全局存储空间中存储的与所述前个分片对应的散列值,对所述当前散列值进行验证;
当验证未通过时接收所述服务器下发第二反馈信息,根据所述第二反馈信息,重新获取在所述当前分片之前上传的前个分片所对应的历史散列值,并基于所述历史散列值对所述当前分片进行重新上传;
当验证通过时接收所述服务器下发的第一反馈信息,根据所述第一反馈信息,对所述当前分片的下一个分片进行遍历,并返回所述对于遍历至的当前分片,确定在所述当前分片之前上传的前个分片所对应的历史散列值的步骤继续执行,直至将所述目标文件中的各个分片均成功上传至所述服务器,以使得所述服务器直接合并各个分片得到目标文件并落盘。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一反馈信息,对所述当前分片的下一个分片进行遍历,包括:根据所述第一反馈信息,继续对所述多个分片进行遍历,以将所述当前分片的下一个分片作为下次分片上传过程中按顺序遍历至的当前分片;
将所述当前分片作为下次分片上传过程中所对应的前个分片,并将所述当前分片所对应的当前散列值,作为下次分片上传过程中所对应的前个分片所对应的历史散列值。
3.根据权利要求1所述的方法,其特征在于,所述发送的所述分片上传请求还用于指示所述服务器在所述当前分片所对应的当前散列值验证通过后,将所述当前散列值存储至所述全局存储空间中,所述全局存储空间包括区块链中的区块。
4.一种文件校验方法,其特征在于,所述方法包括:
接收终端发送的分片上传请求,所述分片上传请求中携带当前分片、以及与所述当前分片对应的当前散列值,所述当前分片为待上传的目标文件中的其中一个分片,所述分片为二进制流形式,所述当前散列值为字符串形式;所述当前散列值通过终端对前个分片所对应的历史散列值进行转换处理,得到对应的第一数组,对二进制流形式的当前分片进行转换处理,得到对应的第二数组,并拼接所述第一数组和所述第二数组,得到第三数组,对所述第三数组进行哈希运算而得到的散列值;
确定在所述当前分片之前所接收并存储的前个分片,并从全局存储空间中查找与所述前个分片对应的散列值;
根据所述当前分片、以及所述全局存储空间中存储的与所述前个分片对应的散列值进行哈希运算,得到与所述当前分片对应的校验散列值,并通过所述校验散列值对所述当前散列值进行验证;
当验证通过时存储所述当前分片,并将与所述当前分片对应的当前散列值存储至所述全局存储空间中;
向所述终端反馈第一反馈信息;反馈的所述第一反馈信息用于指示所述终端继续对待上传的目标文件中的下个分片进行上传;
当验证未通过时反馈第二反馈信息,反馈的所述第二反馈信息用于指示所述终端重新获取在所述当前分片之前上传的前个分片所对应的历史散列值,并基于所述历史散列值对所述当前分片进行重新上传。
5.一种文件上传装置,其特征在于,所述装置包括:
获取模块,用于获取待上传的目标文件,并将所述目标文件拆分成多个分片,所述分片为二进制流形式;
确定模块,用于依次遍历所述多个分片中的每个分片,并对于遍历至的当前分片,确定在所述当前分片之前上传的前个分片所对应的历史散列值,所述历史散列值为字符串形式;
所述确定模块,还用于对所述前个分片所对应的历史散列值进行转换处理,得到对应的第一数组,对二进制流形式的所述当前分片进行转换处理,得到对应的第二数组;拼接所述第一数组和所述第二数组,得到第三数组,对所述第三数组进行哈希运算,得到与所述当前分片对应的、且属于字符串形式的当前散列值,并根据所述当前分片和所述当前散列值生成分片上传请求;
发送模块,用于将所述分片上传请求发送至服务器,发送的所述分片上传请求用于指示所述服务器基于所述当前分片和全局存储空间中存储的与所述前个分片对应的散列值,对所述当前散列值进行验证;
接收模块,用于当验证未通过时接收所述服务器下发第二反馈信息;
重传模块,用于根据所述第二反馈信息,重新获取在所述当前分片之前上传的前个分片所对应的历史散列值,并基于所述历史散列值对所述当前分片进行重新上传;
所述接收模块,还用于当验证通过时接收所述服务器下发的第一反馈信息;
遍历模块,用于根据所述第一反馈信息,对所述当前分片的下一个分片进行遍历,并返回所述对于遍历至的当前分片,确定在所述当前分片之前上传的前个分片所对应的历史散列值的步骤继续执行,直至将所述目标文件中的各个分片均成功上传至所述服务器,以使得所述服务器直接合并各个分片得到目标文件并落盘。
6.根据权利要求5所述的装置,其特征在于,所述根据所述第一反馈信息,对所述当前分片的下一个分片进行遍历,包括:根据所述第一反馈信息,继续对所述多个分片进行遍历,以将所述当前分片的下一个分片作为下次分片上传过程中按顺序遍历至的当前分片;
将所述当前分片作为下次分片上传过程中所对应的前个分片,并将所述当前分片所对应的当前散列值,作为下次分片上传过程中所对应的前个分片所对应的历史散列值。
7.根据权利要求5所述的装置,其特征在于,所述发送的所述分片上传请求还用于指示所述服务器在所述当前分片所对应的当前散列值验证通过后,将所述当前散列值存储至所述全局存储空间中,所述全局存储空间包括区块链中的区块。
8.一种文件校验装置,其特征在于,所述装置包括:
接收模块,用于接收终端发送的分片上传请求,所述分片上传请求中携带当前分片、以及与所述当前分片对应的当前散列值,所述当前分片为待上传的目标文件中的其中一个分片,所述分片为二进制流形式,所述当前散列值为字符串形式;所述当前散列值通过终端对前个分片所对应的历史散列值进行转换处理,得到对应的第一数组,对二进制流形式的当前分片进行转换处理,得到对应的第二数组,并拼接所述第一数组和所述第二数组,得到第三数组,对所述第三数组进行哈希运算而得到的散列值;
查找模块,用于确定在所述当前分片之前所接收并存储的前个分片,并从全局存储空间中查找与所述前个分片对应的散列值;
校验模块,用于根据所述当前分片、以及所述全局存储空间中存储的与所述前个分片对应的散列值进行哈希运算,得到与所述当前分片对应的校验散列值,并通过所述校验散列值对所述当前散列值进行验证;
存储模块,用于当验证通过时存储所述当前分片,并将与所述当前分片对应的当前散列值存储至所述全局存储空间中;
反馈模块,用于向所述终端反馈第一反馈信息;反馈的所述第一反馈信息用于指示所述终端继续对待上传的目标文件中的下个分片进行上传;
所述反馈模块,还用于当验证未通过时反馈第二反馈信息,反馈的所述第二反馈信息用于指示所述终端重新获取在所述当前分片之前上传的前个分片所对应的历史散列值,并基于所述历史散列值对所述当前分片进行重新上传。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述的方法的步骤。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。