一种文件传输方法、系统及电子设备技术方案

技术编号:38133080 阅读:5 留言:0更新日期:2023-07-08 09:42
本申请提供一种文件传输方法、系统及电子设备,属于云存储技术领域,本申请实施例的文件传输方法包括:对待传输的文件进行分片处理得到N个分片,依次对各个分片进行hash计算以得到对应的hash中间结果,直到得到文件对应的hash值;若计算得到任一分片的hash中间结果,则通过分配给该任一分片的下一分片的链路将该任一分片的hash中间结果和该任一分片的下一分片发送给接收端;以使接收端根据接收到的该任一分片的hash中间结果对该任一分片的下一分片进行hash计算,以得到该任一分片的下一分片的hash中间结果,直到计算得到文件对应的hash值,从而可以大大缩短文件传输的时间,提升文件传输的效率。升文件传输的效率。升文件传输的效率。

【技术实现步骤摘要】
一种文件传输方法、系统及电子设备


[0001]本申请属于云存储
,具体涉及一种文件传输方法、系统及电子设备。

技术介绍

[0002]在用户通过云存储的客户端与服务端进行文件传输时,为了对文件的文件内容在两端的一致性进行校验,通常需要在客户端和服务端分别对文件进行哈希(hash)计算,再比较得到的hash值是否相同以确定文件内容是否一致。
[0003]由于对文件进行hash计算往往需要对文件的内容进行分块后从头到尾进行迭代计算,因此,客户端和服务端都采取了边传输边计算的方式。为此,对于一个文件只能使用单链路进行文件传输,从而严重限制了文件传输的速度。

技术实现思路

[0004]有鉴于此,本申请提供一种文件传输方法、系统及电子设备,用于解决只能使用单链路进行文件传输,从而严重限制了文件传输的速度的问题。
[0005]具体地,本申请是通过如下技术方案实现的:
[0006]第一方面,提供了一种文件传输方法,应用于文件传输的发送端,所述方法包括:
[0007]对待传输的文件进行分片处理得到N个分片;其中,所述发送端与所述文件传输的接收端之间包括用于分别传输所述N个分片的多条链路;
[0008]针对所述N个分片中的第一个分片进行hash计算,得到与所述第一个分片对应的第一hash中间结果,并将所述第一个分片通过从所述多条链路中为所述第一个分片分配的链路传输至所述接收端;其中,所述第一个分片为所述N个分片中的首个分片;
[0009]继续将所述第一hash中间结果作为输入数据,针对第二个分片进行hash计算,得到与所述第二个分片对应的第二hash中间结果,并将所述第二个分片和所述第一hash中间结果通过从所述多条链路中为所述第二个分片分配的链路传输至所述接收端,以此类推,直到将第N个分片和与第N

1个分片对应的第N

1hash中间结果通过从所述多条链路中为所述第N个分片分配的链路传输至所述接收端,并继续将所述第N

1hash中间结果作为输入数据,针对所述第N个分片进行hash计算,得到针对所述文件的hash值。
[0010]可选的,所述方法还包括:
[0011]在通过所述多条链路向所述接收端传输所述N个分片的过程中,预先向所述接收端发送计算得到的所述文件的hash值,以使所述接收端基于接收到的所述文件的hash值确定所述接收端是否已存储了与所述待传输的文件相同的文件;
[0012]响应于接收到的所述接收端在确定已存储了与所述待传输的文件相同的文件后返回的提示信息,停止通过所述多条链路向所述接收端继续传输所述N个分片。
[0013]可选的,所述方法还包括:
[0014]在将所述文件的所有分片都传输至所述接收端后,向所述接收端发送传输完成指示信息,以提示所述接收端对接收到的所述文件进行文件内容校验。
[0015]可选的,所述多条链路的数量与所述N个分片的数量相同;其中,从所述多条链路中为所述N个分片中的各个分片分配的链路互不相同。
[0016]可选的,所述发送端为云存储客户端,所述接收端为云存储服务端。
[0017]第二方面,提供了一种文件传输方法,应用于文件传输的接收端,其中,所述文件传输的发送端与所述接收端之间包括用于分别传输针对待传输的文件进行分片得到的N个分片的多条链路,所述方法包括:
[0018]通过从所述多条链路中为所述N个分片中的第一分片分配的链路接收所述发送端传输的所述第一个分片,并针对所述第一个分片进行hash计算,得到与所述第一个分片对应的第一hash中间结果;其中,所述第一个分片为所述N个分片中的首个分片;
[0019]通过从所述多条链路中为所述N个分片中的第二个分片分配的链路接收所述发送端传输的所述第二个分片和由所述发送端针对所述第一个分片进行hash计算得到的与所述第一个分片对应的第一hash中间结果,并继续将接收到的第一hash中间结果作为输入数据,针对所述第二个分片进行hash计算,得到所述第二个分片对应的第二hash中间结果,以此类推,直到通过从所述多条链路中为所述N个分片中的第N个分片分配的链路接收所述发送端传输的所述第N个分片和由所述发送端针对第N

1个分片进行hash计算得到的与所述第N

1个分片对应的第N

1hash中间结果,并继续将接收到的第N

1hash中间结果作为输入数据,针对所述第N个分片进行hash计算,得到针对所述文件的hash值;
[0020]根据计算得到的与所述N个分片分别对应的hash中间结果和所述文件的hash值针对所述文件进行文件内容校验。
[0021]可选的,所述继续将接收到的任一分片对应的hash中间结果作为输入数据,针对所述任一分片的下一分片进行hash计算,包括:
[0022]确定计算得到所述任一分片对应的hash结果与接收到的所述任一分片对应的hash结果是否相同;如果是,继续将接收到的任一分片对应的hash中间结果作为输入数据,针对所述任一分片的下一分片进行hash计算。
[0023]可选的,所述根据计算得到的与所述N个分片分别对应的hash中间结果和所述文件的hash值针对所述文件进行文件内容校验,包括:
[0024]依次确定计算得到的所述N个分片分别对应的hash中间结果与接收到所述N个分片分别对应的hash中间结果是否相同;如果计算出的任一分片对应的hash中间结果与接收到的所述任一分片对应的hash中间结果不同,则丢弃所述任一分片。
[0025]可选的,在根据计算得到的与所述N个分片分别对应的hash中间结果和所述文件的hash值针对所述文件进行文件内容校验之前,所述方法还包括:
[0026]从所述发送端接收传输完成指示信息。
[0027]可选的,所述方法还包括:
[0028]在通过所述多条链路从所述发送端接收所述N个分片的过程中,预先从所述发送端接收所述发送端计算得到的针对所述文件的hash值;
[0029]根据接收到的hash值,查询是否已存储了与所述待传输的文件相同的文件;若存在,则向所述发送端发送提示信息,以提示所述发送端停止通过所述多条链路向所述接收端继续传输所述N个分片。
[0030]可选的,所述发送端为云存储客户端,所述接收端为云存储服务端。
[0031]第三方面,提供了一种文件传输系统,包括:
[0032]文件传输的发送端和接收端;
[0033]其中,所述发送端用于实现第一方面所述的方法;所述接收端用于实现第二方面所述的方法。
[0034]第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现第一方面或第二方面所述方法的步骤。
[0035]第五方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件传输方法,其特征在于,应用于文件传输的发送端,所述方法包括:对待传输的文件进行分片处理得到N个分片;其中,所述发送端与所述文件传输的接收端之间包括用于分别传输所述N个分片的多条链路;针对所述N个分片中的第一个分片进行hash计算,得到与所述第一个分片对应的第一hash中间结果,并将所述第一个分片通过从所述多条链路中为所述第一个分片分配的链路传输至所述接收端;其中,所述第一个分片为所述N个分片中的首个分片;继续将所述第一hash中间结果作为输入数据,针对第二个分片进行hash计算,得到与所述第二个分片对应的第二hash中间结果,并将所述第二个分片和所述第一hash中间结果通过从所述多条链路中为所述第二个分片分配的链路传输至所述接收端,以此类推,直到将第N个分片和与第N

1个分片对应的第N

1hash中间结果通过从所述多条链路中为所述第N个分片分配的链路传输至所述接收端,并继续将所述第N

1hash中间结果作为输入数据,针对所述第N个分片进行hash计算,得到针对所述文件的hash值。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在通过所述多条链路向所述接收端传输所述N个分片的过程中,预先向所述接收端发送计算得到的所述文件的hash值,以使所述接收端基于接收到的所述文件的hash值确定所述接收端是否已存储了与所述待传输的文件相同的文件;响应于接收到的所述接收端在确定已存储了与所述待传输的文件相同的文件后返回的提示信息,停止通过所述多条链路向所述接收端继续传输所述N个分片。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:在将所述文件的所有分片都传输至所述接收端后,向所述接收端发送传输完成指示信息,以提示所述接收端对接收到的所述文件进行文件内容校验。4.根据权利要求1

3任一所述的方法,其特征在于,所述多条链路的数量与所述N个分片的数量相同;其中,从所述多条链路中为所述N个分片中的各个分片分配的链路互不相同。5.根据权利要求1

3任一所述的方法,其特征在于,所述发送端为云存储客户端,所述接收端为云存储服务端。6.一种文件传输方法,其特征在于,应用于文件传输的接收端,其中,所述文件传输的发送端与所述接收端之间包括用于分别传输针对待传输的文件进行分片得到的N个分片的多条链路,所述方法包括:通过从所述多条链路中为所述N个分片中的第一分片分配的链路接收所述发送端传输的所述第一个分片,并针对所述第一个分片进行hash计算,得到与所述第一个分片对应的第一hash中间结果;其中,所述第一个分片为所述N个分片中的首个分片;通过从所述多条链路中为所述N个分片中的第二个分片分配的链路接收所述发送端传输的所述第二个分片和由所述发送端针对所述第一个分片进行hash计算得到的与所述第一个分片对应的第一hash中间结果,并继续将接收到的第一hash中间结果作为...

【专利技术属性】
技术研发人员:张志和陈亮
申请(专利权)人:阿里巴巴中国有限公司
类型:发明
国别省市:

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

1