文件上传方法和装置制造方法及图纸

技术编号:12466988 阅读:57 留言:0更新日期:2015-12-09 16:48
本发明专利技术实施例提供一种文件上传方法和装置。所述方法包括:客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识,客户端代理接收业务服务器发送的文件的刷盘请求,刷盘请求用于请求客户端代理更新文件的元数据,客户端代理根据写入状态标识,确定是否更新文件的元数据,可见,客户端代理能在接收到业务服务器发送的刷盘请求之后,根据写入状态标识确定是否更新文件的元数据,文件写入状态标识反映了客户端代理是否在数据服务器中写入文件成功,保证了文件的元数据与文件的上传数据相适应,从而,在进行断点续传时,实现了断点之前的文件都已经成功上传,保证了上传的文件的数据完整性。

【技术实现步骤摘要】

本专利技术实施例涉及通信技术,尤其涉及一种文件上传方法和装置
技术介绍
随着互联网技术的发展,用户需要将自身创建的文件上传至数据服务器中,以供其他用户读取,以实现文件的共享。现有技术中,异步式文件系统在上传文件时,业务客户端将文件上传至业务服务器,业务服务器将文件的数据分成至少一份发送给客户端代理,客户端代理将文件的数据存储在自身的缓存之后,将文件的数据发送给数据服务器,并将发送给数据服务器的文件的大小发送给元数据服务器。客户端代理在将文件的数据发送给数据服务器时,是通过将其缓存中的数据分成多任务多线程发送给数据服务器,举例来说,客户端代理的缓存中有3M数据,客户端代理启动3个并行任务将该3M数据发送给数据服务器。其中,任务I将数据的0M-1M部分发送给数据服务器,同时,在收到数据服务器发送的成功响应消息后将任务I完成后发送给数据服务器的文件的大小IM发送给元数据服务器;任务2将数据的1M-2M部分发送给数据服务器,同时,在收到数据服务器发送的成功响应消息后将任务2完成后发送给数据服务器的文件的大小2M发送给元数据服务器;任务3将数据的2M-3M部分发送给数据服务器,同时,在收到数据服务器发送的成功响应消息后将任务3完成后发送给数据服务器的文件的大小3M发送给元数据服务器。服务器将文件的剩余部分的数据发送给客户端代理,重复上述过程,完成一份文件的上传。断点续传是在文件上传过程中,如遇故障,当故障修复之后,已上传至数据服务器的文件不会再重传,而是从上次传输的断点处开始传输,断点是根据元数据服务器中记录的该文件已上传的最大值确定的,例如:上述过程中,客户端代理在将其缓存中的文件的数据发送给数据服务器时,如果任务2没有成功,即任务2中数据的1M-2M部分没有成功发送给数据服务器,任务3成功,即任务3中数据的2M-3M部分成功发送给数据服务器,此时,客户端代理在收到数据服务器发送的任务3的成功响应消息后,将任务3完成后发送给数据服务器的文件的大小3M发送给元数据服务器了,此时元数据服务器中记录的是该文件已上传至3M大小了,如果在传输过程中出现故障,则在故障修复后之后,认为上一次的断点为3M,即已上传的文件大小为3M,但实际上,任务2中1M-2M的数据丢失了,导致上传的文件的数据不完整。
技术实现思路
本专利技术实施例提供一种文件上传方法和装置,以提高上传的文件的数据完整性。第一方面,本专利技术实施例提供一种文件上传方法,包括:客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识;所述客户端代理接收业务服务器发送的所述文件的刷盘请求,所述刷盘请求用于请求所述客户端代理更新所述文件的元数据;所述客户端代理根据所述写入状态标识,确定是否更新所述文件的元数据。结合第一方面,在第一方面的第一种可能的实现方式中,所述客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识,包括:若所述客户端代理接收所述数据服务器反馈的所述文件的所有分块中有至少一个分块写入失败,则生成写入失败标识;所述客户端代理根据所述写入状态标识,确定是否更新所述文件的元数据,包括:若所述写入状态标识为写入失败标识,则不更新所述文件的元数据。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识之前,还包括:客户端代理接收业务服务器发送的打开文件请求,所述打开文件请求中包括文件的业务标识,所述客户端代理将所述业务标识存储在缓存中;所述客户端代理接收业务服务器发送的所述文件的刷盘请求之后,还包括:根据所述文件的业务标识确定所述文件为预设业务的文件。结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述客户端代理接收业务服务器发送的打开文件请求之后,客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识之前,还包括:所述客户端代理向业务服务器发送所述文件的文件句柄;所述客户端代理接收所述业务服务器发送的所述文件的写入请求,所述写入请求中包含所述文件的数据和所述文件句柄。第二方面,本专利技术实施例提供一种文件上传方法,包括:业务服务器生成文件的刷盘请求,所述刷盘请求用于请求客户端代理更新所述文件的元数据;所述业务服务器向客户端代理发送文件的刷盘请求。结合第二方面,在第二方面的第一种可能的实现方式中,所述业务服务器生成文件的刷盘请求之前,还包括:所述业务服务器向所述客户端代理发送打开文件请求,所述打开文件请求中包括文件的业务标识;所述业务服务器接收所述客户端代理发送文件的文件句柄;所述业务服务器向所述客户端代理发送所述文件的写入请求,所述写入请求中包含所述文件的数据和所述文件句柄。第三方面,本专利技术实施例提供一种文件上传装置,包括:生成模块,用于根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识;第一接收模块,用于接收业务服务器发送的所述文件的刷盘请求,所述刷盘请求用于请求所述客户端代理更新所述文件的元数据;第一确定模块,用于根据所述写入状态标识,确定是否更新所述文件的元数据。结合第三方面,在第三方面的第一种可能的实现方式中,所述生成模块具体用于若所述装置接收所述数据服务器反馈的所述文件的所有分块中有至少一个分块写入失败,则生成写入失败标识;所述第一确定模块具体用于若所述写入状态标识为写入失败标识,则不更新所述文件的元数据。结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述装置还包括:第二接收模块,用于接收业务服务器发送的打开文件请求,所述打开文件请求中包括文件的业务标识;存储模块,用于将所述业务标识存储在缓存中;第二确定模块,用于根据所述文件的业务标识确定所述文件为预设业务的文件。结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述装置还包括:发送模块,用于向业务服务器发送所述文件的文件句柄;第三接收模块,用于接收所述业务服务器发送的所述文件的写入请求,所述写入请求中包含所述文件的数据和所述文件句柄。第四方面,本专利技术实施例提供一种文件上传装置,包括:生成模块,用于生成文件的刷盘请求,所述刷盘请求用于请求客户端代理更新所述文件的元数据;第一发送模块,用于向客户端代理发送文件的刷盘请求。结合第四方面,在第四方面的第一种可能的实现方式中,所述装置还包括:第二发送模块,用于向所述客户端代理发送打开文件请求,所述打开文件请求中包括文件的业务标识;接收模块,用于接收所述客户端代理发送文件的文件句柄;第三发送模块,用于向所述客户端代理发送所述文件的写入请求,所述写入请求中包含所述文件的数据和所述文件句柄。本专利技术实施例提供的文件上传方法和装置,通过客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识,客户端代理接收业务服务器发送的文件的刷盘请求,刷盘请求用于请求客户端代理更新文件的元数据,客户端代理根据写入状态标识,确定是否更新文件的元数据,可见,客户端代理能在接收到业务服务器发送的刷盘请求之后,根据写入状态标识确定是否更新文件的元数据,文件写入状态标识反映了客户端代理是否在数据服务器中写入文件成功,保证了文件的元数据与文件的上传本文档来自技高网
...

【技术保护点】
一种文件上传方法,其特征在于,包括:客户端代理根据数据服务器反馈的文件的写入响应,确定生成文件写入状态标识;所述客户端代理接收业务服务器发送的所述文件的刷盘请求,所述刷盘请求用于请求所述客户端代理更新所述文件的元数据;所述客户端代理根据所述写入状态标识,确定是否更新所述文件的元数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:鹿智婷胡研研
申请(专利权)人:成都华为技术有限公司
类型:发明
国别省市:四川;51

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

1