【技术实现步骤摘要】
文件上传方法、装置、设备以及存储介质
本申请涉及互联网领域中的云计算、云存储技术,尤其涉及一种文件上传方法、装置、设备以及存储介质。
技术介绍
随着云存储技术的发展和普及,越来越多的用户喜欢将文件存储在云端服务器。实际应用中,当文件较大时,文件的上传成功率较低。现有技术中,为了保证较大文件的成功上传,云端服务器提供了分块上传接口,以使终端设备将较大的文件划分为多个数据块,并将多个数据块逐个发送给云端服务器。云端服务器为了便于后续的文件查询流程,在接收到多个数据块之后,需要生成并存储文件元信息,并通过多个索引来标识文件元信息。然而上述方式中,文件元信息的索引结构导致分块数量不能无限制增加,因此云端服务器在分块上传接口中限制了最大分块数量。这样,当面对超大文件时,即使按照最大分块数量来进行分块,每个数据块的大小可能依然较大,当网络环境较差时,文件上传成功率依然较低。
技术实现思路
本申请提供了一种文件上传方法、装置、设备以及存储介质。第一方面,本申请提供一种文件上传方法,包括: ...
【技术保护点】
1.一种文件上传方法,包括:/n从终端设备接收目标文件对应的上传请求;/n根据当前网络参数,确定所述目标文件对应的目标分块大小,并向所述终端设备发送所述目标分块大小;所述目标分块大小小于或等于所述当前网络参数对应的分块大小阈值,且用于使所述终端设备将所述目标文件划分为多个数据块,其中,每个数据块的大小小于或等于所述目标分块大小;/n从所述终端设备接收所述多个数据块,并采用单层的索引结构存储所述目标文件的元信息。/n
【技术特征摘要】
1.一种文件上传方法,包括:
从终端设备接收目标文件对应的上传请求;
根据当前网络参数,确定所述目标文件对应的目标分块大小,并向所述终端设备发送所述目标分块大小;所述目标分块大小小于或等于所述当前网络参数对应的分块大小阈值,且用于使所述终端设备将所述目标文件划分为多个数据块,其中,每个数据块的大小小于或等于所述目标分块大小;
从所述终端设备接收所述多个数据块,并采用单层的索引结构存储所述目标文件的元信息。
2.根据权利要求1所述的方法,其中,所述从所述终端设备接收所述多个数据块,并采用单层的索引结构存储所述目标文件的元信息,包括:
分别从所述终端设备接收所述多个数据块中的每个数据块,并根据所述目标文件的索引标识,对每个数据块进行存储,生成并缓存每个数据块的元信息;
在根据所述多个数据块的元信息检验所述多个数据块均正确上传时,生成并存储所述目标文件的元信息,并将缓存的所述多个数据块的元信息清除;
其中,所述目标文件的元信息包括所述目标文件的索引标识。
3.根据权利要求2所述的方法,其中,针对所述多个数据块中的任意第一数据块,根据所述目标文件的索引标识,对所述第一数据块进行存储,生成并缓存所述第一数据块的元信息,包括:
根据所述目标文件的索引标识,确定所述第一数据块的索引标识;
将所述第一数据块划分为多个数据片,根据所述第一数据块的索引标识,确定每个数据片的索引标识,并根据所述多个数据片的索引标识对所述多个数据片进行存储;
生成并缓存所述第一数据块的元信息,所述第一数据块的元信息包括所述第一数据块的索引标识和指纹信息。
4.根据权利要求3所述的方法,其中,根据所述目标文件的索引标识,确定所述第一数据块的索引标识,包括:
采用第一哈希运算对所述目标文件的索引标识和所述第一数据块的序号进行计算,确定所述第一数据块的索引标识;
根据所述第一数据块的索引标识,确定每个数据片的索引标识,包括:
采用第二哈希运算对所述第一数据块的索引标识和每个数据片的序号进行计算,确定每个数据片的索引标识。
5.根据权利要求4所述的方法,采用单层的索引结构存储所述目标文件的元信息之后,还包括:
从所述终端设备接收文件查询请求,所述文件查询请求用于请求查询所述目标文件的内容;
根据所述目标文件的元信息,获取所述目标文件的索引标识;
根据所述目标文件的索引标识以及所述第一哈希运算,获取所述目标文件对应的多个数据块的索引标识,并根据每个数据块的索引标识以及所述第二哈希运算,获取每个数据块对应的多个数据片的索引标识;
从与所述多个数据片的索引标识对应的存储空间中获取所述目标文件的内容。
6.根据权利要求1至5任一项所述的方法,其中,根据当前网络参数,确定所述目标文件对应的目标分块大小,包括:
确定所述上传请求是否是针对所述目标文件的第一次上传请求;
若确定所述上传请求是针对所述目标文件的第一次上传请求,则获取当前网络参数,并根据所述当前网络参数,确定所述目标文件对应的目标分块大小。
7.根据权利要求6所述的方法,所述方法还包括:
若确定所述上传请求不是针对所述目标文件的第一次上传请求,则获取所述目标文件对应的历史分块大小,并对所述历史分块大小进行调整处理,得到所述目标文件对应的目标分块大小。
8.根据权利要求3至5任一项所述的方法,根据所述目标文件的索引标识,确定所述第一数据块的索引标识之后,还包括:
根据所述第一数据块的索引标识,确定所述第一数据块是否是第一次接收到;
若确定所述第一数据块不是第一次接收到,则将所述第一数据块的内容与第二数据块的内容进行比对,所述第二数据块为第一次接收到的与所述第一数据块的索引标识相同的数据块;
在比对结果为不一致时,向所述终端设备发送上传失败消息。
9.根据权利要求8所述的方法,向所述终端设备发送上传失败消息之后,还包括:
向所述终端设备发送提示信息,所述提示信息用于提示用户中断所述目标文件的传输,并重新上传所述目标文件。
10.根据权利要求1至9任一项所述的方法,所述当前网络参数包括下述中的至少一项:所述终端设备的位置信息、所述终端设备接入的运营商信息、网络传输速率、网络信号强度。
11.一种文件上传装...
【专利技术属性】
技术研发人员:李磊,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。