文件上传方法和装置的制造方法

文档序号:9420421阅读:355来源:国知局
文件上传方法和装置的制造方法
【技术领域】
[0001]本发明实施例涉及通信技术,尤其涉及一种文件上传方法和装置。
【背景技术】
[0002]随着互联网技术的发展,用户需要将自身创建的文件上传至数据服务器中,以供其他用户读取,以实现文件的共享。
[0003]现有技术中,异步式文件系统在上传文件时,业务客户端将文件上传至业务服务器,业务服务器将文件的数据分成至少一份发送给客户端代理,客户端代理将文件的数据存储在自身的缓存之后,将文件的数据发送给数据服务器,并将发送给数据服务器的文件的大小发送给元数据服务器。客户端代理在将文件的数据发送给数据服务器时,是通过将其缓存中的数据分成多任务多线程发送给数据服务器,举例来说,客户端代理的缓存中有3M数据,客户端代理启动3个并行任务将该3M数据发送给数据服务器。其中,任务I将数据的0M-1M部分发送给数据服务器,同时,在收到数据服务器发送的成功响应消息后将任务I完成后发送给数据服务器的文件的大小IM发送给元数据服务器;任务2将数据的1M-2M部分发送给数据服务器,同时,在收到数据服务器发送的成功响应消息后将任务2完成后发送给数据服务器的文件的大小2M发送给元数据服务器;任务3将数据的2M-3M部分发送给数据服务器,同时,在收到数据服务器发送的成功响应消息后将任务3完成后发送给数据服务器的文件的大小3M发送给元数据服务器。服务器将文件的剩余部分的数据发送给客户端代理,重复上述过程,完成一份文件的上传。
[0004]断点续传是在文件上传过程中,如遇故障,当故障修复之后,已上传至数据服务器的文件不会再重传,而是从上次传输的断点处开始传输,断点是根据元数据服务器中记录的该文件已上传的最大值确定的,例如:上述过程中,客户端代理在将其缓存中的文件的数据发送给数据服务器时,如果任务2没有成功,即任务2中数据的1M-2M部分没有成功发送给数据服务器,任务3成功,即任务3中数据的2M-3M部分成功发送给数据服务器,此时,客户端代理在收到数据服务器发送的任务3的成功响应消息后,将任务3完成后发送给数据服务器的文件的大小3M发送给元数据服务器了,此时元数据服务器中记录的是该文件已上传至3M大小了,如果在传输过程中出现故障,则在故障修复后之后,认为上一次的断点为3M,即已上传的文件大小为3M,但实际上,任务2中1M-2M的数据丢失了,导致上传的文件的数据不完整。

【发明内容】

[0005]本发明实施例提供一种文件上传方法和装置,以提高上传的文件的数据完整性。
[0006]第一方面,本发明实施例提供一种文件上传方法,包括:
[0007]客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识;
[0008]所述客户端代理接收业务服务器发送的所述文件的刷盘请求,所述刷盘请求用于请求所述客户端代理更新所述文件的元数据;
[0009]所述客户端代理根据所述写入状态标识,确定是否更新所述文件的元数据。
[0010]结合第一方面,在第一方面的第一种可能的实现方式中,所述客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识,包括:
[0011]若所述客户端代理接收所述数据服务器反馈的所述文件的所有分块中有至少一个分块写入失败,则生成写入失败标识;
[0012]所述客户端代理根据所述写入状态标识,确定是否更新所述文件的元数据,包括:
[0013]若所述写入状态标识为写入失败标识,则不更新所述文件的元数据。
[0014]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识之前,还包括:
[0015]客户端代理接收业务服务器发送的打开文件请求,所述打开文件请求中包括文件的业务标识,所述客户端代理将所述业务标识存储在缓存中;
[0016]所述客户端代理接收业务服务器发送的所述文件的刷盘请求之后,还包括:
[0017]根据所述文件的业务标识确定所述文件为预设业务的文件。
[0018]结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述客户端代理接收业务服务器发送的打开文件请求之后,客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识之前,还包括:
[0019]所述客户端代理向业务服务器发送所述文件的文件句柄;
[0020]所述客户端代理接收所述业务服务器发送的所述文件的写入请求,所述写入请求中包含所述文件的数据和所述文件句柄。
[0021]第二方面,本发明实施例提供一种文件上传方法,包括:
[0022]业务服务器生成文件的刷盘请求,所述刷盘请求用于请求客户端代理更新所述文件的元数据;
[0023]所述业务服务器向客户端代理发送文件的刷盘请求。
[0024]结合第二方面,在第二方面的第一种可能的实现方式中,所述业务服务器生成文件的刷盘请求之前,还包括:
[0025]所述业务服务器向所述客户端代理发送打开文件请求,所述打开文件请求中包括文件的业务标识;
[0026]所述业务服务器接收所述客户端代理发送文件的文件句柄;
[0027]所述业务服务器向所述客户端代理发送所述文件的写入请求,所述写入请求中包含所述文件的数据和所述文件句柄。
[0028]第三方面,本发明实施例提供一种文件上传装置,包括:
[0029]生成模块,用于根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识;
[0030]第一接收模块,用于接收业务服务器发送的所述文件的刷盘请求,所述刷盘请求用于请求所述客户端代理更新所述文件的元数据;
[0031]第一确定模块,用于根据所述写入状态标识,确定是否更新所述文件的元数据。
[0032]结合第三方面,在第三方面的第一种可能的实现方式中,所述生成模块具体用于若所述装置接收所述数据服务器反馈的所述文件的所有分块中有至少一个分块写入失败,则生成写入失败标识;
[0033]所述第一确定模块具体用于若所述写入状态标识为写入失败标识,则不更新所述文件的元数据。
[0034]结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述装置还包括:
[0035]第二接收模块,用于接收业务服务器发送的打开文件请求,所述打开文件请求中包括文件的业务标识;
[0036]存储模块,用于将所述业务标识存储在缓存中;
[0037]第二确定模块,用于根据所述文件的业务标识确定所述文件为预设业务的文件。
[0038]结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述装置还包括:
[0039]发送模块,用于向业务服务器发送所述文件的文件句柄;
[0040]第三接收模块,用于接收所述业务服务器发送的所述文件的写入请求,所述写入请求中包含所述文件的数据和所述文件句柄。
[0041]第四方面,本发明实施例提供一种文件上传装置,包括:
[0042]生成模块,用于生成文件的刷盘请求,所述刷盘请求用于请求客户端代理更新所述文件的元数据;
[0043]第一发送模块,用于向客户端代理发送文件的刷盘请求。
[0044]结合第四方面,在第四方面的第一种可能的实现方式中,所述装置还包括:
[0045]第二发送模块,用于向所述客户端代理发送打开文件请求,所述打开文件请求中包括文件的业务标识;
[0046]接收模块,用于接收所述客户端代理发送文件的文件句柄;
[0047]第三发送模块,用于向所述客户端代理发送所述文件的写入请求,所述写入请求中包含所述文件的数据和所述文件句柄。
[0048]本发明实施例提供的文件上传方法和装置,通过客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识,客户端代理接收业务服务器发送的文件的刷盘请求,刷盘请求用于请求客户端代理更新文件的元数据,客户端代理根据写入状态标识,确定是否更新文件的元数据,可见,客户端代理能在接收到业务服务器发送的刷盘请求之后,根据写入状态标识确定是否更新文件的元数据,文件写入状态标识反映了客户端代理是否在数据服务器中写入文件成功,保证了文件的元数据与文件的上传数据相适应,从而,在进行断点续传时,实现了断点之前的文件都已经成功上传,保证了上传的文件的数据完整性。
【附图说明】
[0049]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0050]图1为本发明实施例提供的文件上传方法实施例一的流程示意图;
[005
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1