一种文件上传方法、客户端和服务端

申请号 CN201380000611.X 申请日 2013-05-08 公开(公告)号 CN103547339A 公开(公告)日 2014-01-29
申请人 华为技术有限公司; 发明人 李晓明; 李进;
摘要 本 发明 实施例 提供一种文件上传方法、客户端和服务端,涉及互联网领域,能够简化文件上传方式,增强上传前后处理能 力 ,且应用服务端无需购买和维护存储设备。其方法为:上传服务端接收客户端发送的 请求 消息,请求消息包括请求头域,根据请求消息中的请求头域判断是否满足文件的接收条件,若满足文件的接收条件,则接收文件,并根据回调地址向应用服务端发送通知消息,其中,回调地址是在客户端发送的请求消息的请求头域中携带的,或回调地址是从应用服务端获取的。本发明实施例用于上传文件。
权利要求

1.一种文件上传方法,其特征在于,包括:
接收客户端发送的请求消息,所述请求消息包括请求头域;
根据所述请求消息中的请求头域判断是否满足文件的接收条件;
若满足所述文件的接收条件,则接收所述文件,并根据回调地址向应用服务端发送通知消息。
2.根据权利要求1所述的方法,其特征在于,所述回调地址包括上传前回调地址和上传后回调地址。
3.根据权利要求2所述的方法,其特征在于,所述请求头域还包括应用标识,所述应用标识是用来标识所述应用服务端的。
4.根据权利要求3所述的方法,其特征在于,所述回调地址是在所述客户端发送的请求消息的请求头域中携带的,或所述回调地址是从所述应用服务端获取的。
5.根据权利要求4所述的方法,其特征在于,当所述回调地址是从所述应用服务端获取的时,所述方法还包括:
接收所述应用服务端发送的注册消息,所述注册消息包括所述回调地址;
将所述回调地址保存在数据库中。
6.根据权利要求5所述的方法,其特征在于,当所述回调地址是从所述应用服务端获取的时,所述若满足所述文件的接收条件,则接收所述文件,并根据回调地址向应用服务端发送通知消息包括:
若满足所述文件的接收条件,则根据应用标识从所述数据库中获取所述上传前回调地址,并调用所述上传前回调地址向所述应用服务端发送第一通知消息,所述第一通知消息包括所述文件的第一文件信息;
向所述客户端发送上传响应消息,所述上传响应消息包括所述请求头域,以便于所述客户端继续上传所述文件;
接收并存储所述客户端根据所述上传响应消息发送的所述文件,而后根据所述应用标识从所述数据库中获取所述上传后回调地址,并调用所述上传后回调地址向所述应用服务端发送第二通知消息,所述第二通知消息包括所述文件的第二文件信息。
7.根据权利要求4所述的方法,其特征在于,当所述回调地址是在所述客户端发送的请求消息的请求头域中携带的时,所述若满足所述文件的接收条件,则接收所述文件,并根据回调地址向应用服务端发送通知消息包括:
若满足所述文件的接收条件,则从所述请求头域中获取所述上传前回调地址,并调用所述上传前回调地址向所述应用服务端发送第一通知消息,所述第一通知消息包括所述文件的第一文件信息;
向所述客户端发送上传响应消息,所述上传响应消息包括所述请求头域,以便于所述客户端继续上传所述文件;
接收并存储所述客户端根据所述上传响应消息发送的所述文件,而后从所述请求头域中获取所述上传后回调地址,并调用所述上传后回调地址向所述应用服务端发送第二通知消息,所述第二通知消息包括所述文件的第二文件信息。
8.根据权利要求1至7任意一项所述的方法,其特征在于,所述方法还包括:
在接收完所述文件后,向所述客户端发送完成响应消息。
9.一种文件上传方法,其特征在于,包括:
向上传服务端发送注册消息,所述注册消息包括文件上传时的回调地址;
在注册完成后,接收所述上传服务端根据所述回调地址发送的文件上传的通知消息,以获取所述文件的文件信息。
10.根据权利要求9所述的方法,其特征在于,所述回调地址包括上传前回调地址和上传后回调地址。
11.根据权利要求10所述的方法,其特征在于,所述接收所述上传服务端根据所述回调地址发送的文件上传的通知消息,以获取所述文件的文件信息包括:
接收所述上传服务端根据所述上传前回调地址发送的第一通知消息,所述第一通知消息包括所述文件的第一文件信息;
当所述上传服务端接收完所述文件时,接收所述上传服务端根据所述上传后回调地址发送的第二通知消息,所述第二通知消息包括所述文件的第二文件信息。
12.一种文件上传方法,其特征在于,包括:
向上传服务端发送请求消息,所述请求消息包括请求头域;
接收所述上传服务端发送的上传响应消息,所述上传响应消息包括所述请求头域;
根据所述上传响应消息,向所述上传服务端上传文件。
13.根据权利要求12所述的方法,其特征在于,所述请求头域包括应用标识,或者所述请求头域包括回调地址和所述应用标识。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
在所述上传服务端通过所述回调地址向应用服务端回调成功之后,接收所述上传服务端发送的完成响应消息。
15.一种上传服务端,其特征在于,结合了存储功能,包括:
接收单元,用于接收客户端发送的请求消息,所述请求消息包括请求头域;
判断单元,用于根据所述请求消息中的请求头域判断是否满足文件的接收条件;
处理单元,用于若满足所述文件的接收条件,则接收所述文件,并根据回调地址向应用服务端发送通知消息。
16.根据权利要求15所述的上传服务端,其特征在于,所述回调地址包括上传前回调地址和上传后回调地址。
17.根据权利要求16所述的上传服务端,其特征在于,所述请求头域还包括应用标识,所述应用标识是用来标识所述应用服务端的。
18.根据权利要求17所述的上传服务端,其特征在于,所述回调地址是在所述客户端发送的请求消息的请求头域中携带的,或所述回调地址是从所述应用服务端获取的。
19.根据权利要求18所述的上传服务端,其特征在于,当所述回调地址是从所述应用服务端获取的时,还包括:
第一接收单元,用于接收所述应用服务端发送的注册消息,所述注册消息包括所述回调地址;
存储单元,用于将所述回调地址保存在数据库中。
20.根据权利要求19所述的上传服务端,其特征在于,当所述回调地址是从所述应用服务端获取的时,所述处理单元包括:
第一处理子单元,用于若满足所述文件接收条件,则根据应用标识从所述数据库中获取所述上传前回调地址,并调用所述上传前回调地址向所述应用服务端发送第一通知消息,所述第一通知消息包括所述文件的第一文件信息;
第一发送子单元,用于向所述客户端发送上传响应消息,所述上传响应消息包括所述请求头域,以便于所述客户端继续上传所述文件;
第二处理子单元,用于接收并存储所述客户端根据所述上传响应消息发送的所述文件,而后根据所述应用标识从所述数据库中获取所述上传后回调地址,并调用所述上传后回调地址向所述应用服务端发送第二通知消息,所述第二通知消息包括所述文件的第二文件信息。
21.根据权利要求18所述的上传服务端,其特征在于,当所述回调地址是在所述客户端发送的请求消息的请求头域中携带的时,所述处理单元包括:
第三处理子单元,用于若满足所述文件的接收条件,则从所述请求头域中获取所述上传前回调地址,并调用所述上传前回调地址向所述应用服务端发送第一通知消息,所述第一通知消息包括所述文件的第一文件信息;
第二发送子单元,用于向所述客户端发送上传响应消息,所述上传响应消息包括所述请求头域,以便于所述客户端继续上传所述文件;
第四处理子单元,用于接收并存储所述客户端根据所述上传响应消息发送的所述文件,而后从所述请求头域中获取所述上传后回调地址,并调用所述上传后回调地址向所述应用服务端发送第二通知消息,所述第二通知消息包括所述文件的第二文件信息。
22.根据权利要求15至21任意一项所述的上传服务端,其特征在于,还包括:
响应单元,用于在接收完所述文件后,向所述客户端发送完成响应消息。
23.一种应用服务端,其特征在于,包括:
第二发送单元,用于向上传服务端发送注册消息,所述注册消息包括文件上传时的回调地址;
第二接收单元,用于在注册完成后,接收所述上传服务端根据所述回调地址发送的文件上传的通知消息,以获取所述文件的文件信息。
24.根据权利要求23所述的应用服务端,其特征在于,所述回调地址包括上传前回调地址和上传后回调地址。
25.根据权利要求24所述的应用服务端,其特征在于,所述第二接收单元用于:
接收所述上传服务端根据所述上传前回调地址发送的第一通知消息,所述第一通知消息包括所述文件的第一文件信息;
当所述上传服务端接收完所述文件时,接收所述上传服务端根据所述上传后回调地址发送的第二通知消息,所述第二通知消息包括所述文件的第二文件信息。
26.一种客户端,特征在于,包括:
第三发送单元,用于向上传服务端发送请求消息,所述请求消息包括请求头域;
第三接收单元,用于接收所述上传服务端发送的上传响应消息,所述上传响应消息包括所述请求头域;
文件上传单元,用于根据所述上传响应消息,向所述上传服务端上传文件。
27.根据权利要求26所述的客户端,其特征在于,所述请求头域包括应用标识,或者所述请求头域包括回调地址和所述应用标识。
28.根据权利要求27所述的客户端,其特征在于,还包括:
在所述上传服务端通过所述回调地址向应用服务端回调成功之后,接收所述上传服务端发送的完成响应消息。
29.一种上传服务端,其特征在于,包括:
第一接收器,用于接收客户端发送的请求消息,所述请求消息包括请求头域;
第一处理器,用于根据所述请求消息中的请求头域判断是否满足文件的接收条件;
所述第一接收器还用于若满足所述文件的接收条件,则接收所述文件,第一发射器并根据回调地址向应用服务端发送通知消息。
30.根据权利要求29所述的上传服务端,其特征在于,所述回调地址包括上传前回调地址和上传后回调地址。
31.根据权利要求30所述的上传服务端,其特征在于,所述请求头域还包括应用标识,所述应用标识是用来标识所述应用服务端的。
32.根据权利要求31所述的上传服务端,其特征在于,所述回调地址是在所述客户端发送的请求消息的请求头域中携带的,或所述回调地址是从所述应用服务端获取的。
33.根据权利要求32所述的上传服务端,其特征在于,当所述回调地址是从所述应用服务端获取的时,还包括:
所述第一接收器还用于接收所述应用服务端发送的注册消息,所述注册消息包括所述回调地址;
第一存储器用于将所述回调地址保存在数据库中。
34.根据权利要求33所述的上传服务端,其特征在于,当所述回调地址是从所述应用服务端获取的时,所述第一接收器、所述第一处理器、所述第一存储器以及所述第一发射器还用于:
若满足所述文件的接收条件,则所述第一处理器根据应用标识从所述数据库中获取所述上传前回调地址,所述第一发射器调用所述上传前回调地址向所述应用服务端发送第一通知消息,所述第一通知消息包括所述文件的第一文件信息;
所述第一发射器还用于向所述客户端发送上传响应消息,所述上传响应消息包括所述请求头域,以便于所述客户端继续上传所述文件;
所述第一接收器还用于接收所述客户端根据所述上传响应消息发送的所述文件,所述第一存储器还用于并存储所述文件,所述第一处理器根据所述应用标识从所述数据库中获取所述上传后回调地址,所述第一发射器调用所述上传后回调地址向所述应用服务端发送第二通知消息,所述第二通知消息包括所述文件的第二文件信息。
35.根据权利要求32所述的上传服务端,其特征在于,当所述回调地址是在所述客户端发送的请求消息的请求头域中携带的时,所述第一接收器、所述第一处理器、所述第一存储器以及所述第一发射器用于:
若满足所述文件的接收条件,则所述第一处理器从所述请求头域中获取所述上传前回调地址,所述第一发射器调用所述上传前回调地址向所述应用服务端发送第一通知消息,所述第一通知消息包括所述文件的第一文件信息;
所述第一发射器向所述客户端发送上传响应消息,所述上传响应消息包括所述请求头域,以便于所述客户端继续上传所述文件;
所述第一接收器还用于接收所述客户端根据所述上传响应消息发送的所述文件,所述第一存储器还用于并存储所述文件,所述第一处理器从所述请求头域中获取所述上传后回调地址,所述第一发射器调用所述上传后回调地址向所述应用服务端发送第二通知消息,所述第二通知消息包括所述文件的第二文件信息。
36.根据权利要求29至35任意一项所述的上传服务端,其特征在于,还包括:
在接收完所述文件后,所述第一发射器还用于向所述客户端发送完成响应消息。
37.一种应用服务端,其特征在于,包括:
第二发射器,用于向上传服务端发送注册消息,所述注册消息包括文件上传时的回调地址;
第二接收器,用于在注册完成后,接收所述上传服务端根据所述回调地址发送的文件上传的通知消息,以获取所述文件的文件信息。
38.根据权利要求37所述的应用服务端,其特征在于,所述回调地址包括上传前回调地址和上传后回调地址。
39.根据权利要求38所述的应用服务端,其特征在于,所述第二接收器用于:
接收所述上传服务端根据所述上传前回调地址发送的第一通知消息,所述第一通知消息包括所述文件的第一文件信息;
当所述上传服务端接收完所述文件时,接收所述上传服务端根据所述上传后回调地址发送的第二通知消息,所述第二通知消息包括所述文件的第二文件信息。
40.一种客户端,其特征在于,包括:
第三发射器,用于向上传服务端发送请求消息,所述请求消息包括请求头域;
第三接收器,用于接收所述上传服务端发送的上传响应消息,所述上传响应消息包括所述请求头域;
第三处理器,用于根据所述上传响应消息,向所述上传服务端上传文件。
41.根据权利要求40所述的客户端,其特征在于,所述请求头域包括应用标识,或者所述请求头域包括回调地址和所述应用标识。
42.根据权利要求41所述的客户端,其特征在于,还包括:
在所述上传服务端通过所述回调地址向应用服务端回调成功之后,所述第三接收器还用于接收所述上传服务端发送的完成响应消息。
43.一种通信系统,其特征在于,包括:
如权利要求29至36所述的上传服务端;权利要求37至39所述的应用服务端;权利要求40至42所述的客户端。

说明书全文

一种文件上传方法、客户端和服务端

技术领域

[0001] 本发明涉及互联网领域,尤其涉及一种文件上传方法、客户端和服务端。

背景技术

[0002] 随着互联网的高速发展,越来越多的网站提供上传工具,鼓励用户上传文件。但是由于网站上传服务器的性能、带宽、安全等的限制,用户上传文件的效率受到了严重影响,现有技术中,能够改善上传体验的方法,主要有两种:一种是CDN(Content Delivery Network,内容分发网络)上传加速功能,一种是使用存储。
[0003] 具体的,CDN主要提供了上传加速和下载加速功能。其中,上传加速的方法为:用户将文件上传到CDN节点,CDN节点将文件传输到网站,这样,用户需要进行2次文件上传,才能将文件上传到网站。而云存储是将网络中大量的各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问服务。当使用云存储的方法时,用户可以将文件上传到网站,网站再将文件上传至云存储。
[0004] 因此,在上述两种方法中,用户的文件都需要进行2次上传,在CDN上传加速方法中,还需要购买和维护存储设施。另外,在云存储方法中,当上传完文件后,可能存在浏览器还需要与网络服务器再进行一次交互,如果是应用在CDN系统中,需要对应用逻辑做比较大的修改,并且Amazon S3(Amazon Simple Storage Service,亚逊简易储存服务)为中心集中式服务,给用户上传文件带来不便。

发明内容

[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] 存储单元,用于将所述回调地址保存在数据库中。
[0051] 结合第四方面的第四种可能实现的方式,在第五种可能实现的方式中,当所述回调地址是从所述应用服务端获取的时,所述处理单元包括:
[0052] 第一处理子单元,用于若满足所述文件接收条件,则根据应用标识从所述数据库中获取所述上传前回调地址,并调用所述上传前回调地址向所述应用服务端发送第一通知消息,所述第一通知消息包括所述文件的第一文件信息;
[0053] 第一发送子单元,用于向所述客户端发送上传响应消息,所述上传响应消息包括所述请求头域,以便于所述客户端继续上传所述文件;
[0054] 第二处理子单元,用于接收并存储所述客户端根据所述上传响应消息发送的所述文件,而后根据所述应用标识从所述数据库中获取所述上传后回调地址,并调用所述上传后回调地址向所述应用服务端发送第二通知消息,所述第二通知消息包括所述文件的第二文件信息。
[0055] 结合第四方面或第四方面的第三种可能实现的方式,在第六种可能实现的方式中,当所述回调地址是在所述客户端发送的请求消息的请求头域中携带的时,所述处理单元包括:
[0056] 第三处理子单元,用于若满足所述文件的接收条件,则从所述请求头域中获取所述上传前回调地址,并调用所述上传前回调地址向所述应用服务端发送第一通知消息,所述第一通知消息包括所述文件的第一文件信息;
[0057] 第二发送子单元,用于向所述客户端发送上传响应消息,所述上传响应消息包括所述请求头域,以便于所述客户端继续上传所述文件;
[0058] 第四处理子单元,用于接收并存储所述客户端根据所述上传响应消息发送的所述文件,而后从所述请求头域中获取所述上传后回调地址,并调用所述上传后回调地址向所述应用服务端发送第二通知消息,所述第二通知消息包括所述文件的第二文件信息。
[0059] 结合第四方面或第四方面的第一种可能实现的方式至第六种可能实现的方式,在第七种可能实现的方式中,还包括:
[0060] 响应单元,用于在接收完所述文件后,向所述客户端发送完成响应消息。
[0061] 第五方面,提供一种应用服务端,包括:
[0062] 第二发送单元,用于向上传服务端发送注册消息,所述注册消息包括文件上传时的回调地址;
[0063] 第二接收单元,用于在注册完成后,接收所述上传服务端根据所述回调地址发送的所述文件上传的通知消息,以获取所述文件的文件信息。
[0064] 结合第五方面,在第一种可能实现的方式中,所述回调地址包括上传前回调地址和上传后回调地址。
[0065] 结合第五方面的第一种可能实现的方式,在第二种可能实现的方式中,所述第二接收单元用于:
[0066] 接收所述上传服务端根据所述上传前回调地址发送的第一通知消息,所述第一通知消息包括所述文件的第一文件信息;
[0067] 当所述上传服务端接收完所述文件时,接收所述上传服务端根据所述上传后回调地址发送的第二通知消息,所述第二通知消息包括所述文件的第二文件信息。
[0068] 第六方面,提供一种客户端,包括:
[0069] 第三发送单元,用于向上传服务端发送请求消息,所述请求消息包括请求头域;
[0070] 第三接收单元,用于接收所述上传服务端发送的上传响应消息,所述上传响应消息包括所述请求头域;
[0071] 文件上传单元,用于根据所述上传响应消息,向所述上传服务端上传文件。
[0072] 结合第六方面,在第一种可能实现的方式中,所述请求头域包括应用标识,或者所述请求头域包括回调地址和所述应用标识。
[0073] 结合第六方面的第一种可能实现的方式,在第二种可能实现的方式中,还包括:
[0074] 在所述上传服务端通过所述回调地址向应用服务端回调成功之后,接收所述上传服务端发送的完成响应消息。
[0075] 第七方面,提供一种上传服务端,包括:
[0076] 第一接收器,用于接收客户端发送的请求消息,所述请求消息包括请求头域;
[0077] 第一处理器,用于根据所述请求消息中的请求头域判断是否满足文件的接收条件;
[0078] 所述第一接收器还用于若满足所述文件的接收条件,则接收所述文件,第一发射器并根据回调地址向应用服务端发送通知消息。
[0079] 结合第七方面,在第一种可能实现的方式中,所述回调地址包括上传前回调地址和上传后回调地址。
[0080] 结合第七方面的第一种可能实现的方式,在第二种可能实现的方式中,所述请求头域还包括应用标识,所述应用标识是用来标识所述应用服务端的。
[0081] 结合第七方面的第二种可能实现的方式,在第三种可能实现的方式中,所述回调地址是在所述客户端发送的请求消息的请求头域中携带的,或所述回调地址是从所述应用服务端获取的。
[0082] 结合第七方面的第三种可能实现的方式,在第四种可能实现的方式中,当所述回调地址是从所述应用服务端获取的时,还包括:
[0083] 所述第一接收器还用于接收所述应用服务端发送的注册消息,所述注册消息包括所述回调地址;
[0084] 第一存储器用于将所述回调地址保存在数据库中。
[0085] 结合第七方面的第四种可能实现的方式,在第五种可能实现的方式中,当所述回调地址是从所述应用服务端获取的时,所述第一接收器、所述第一处理器、所述第一存储器以及所述第一发射器还用于:
[0086] 若满足所述文件的接收条件,则所述第一处理器根据应用标识从所述数据库中获取所述上传前回调地址,所述第一发射器调用所述上传前回调地址向所述应用服务端发送第一通知消息,所述第一通知消息包括所述文件的第一文件信息;
[0087] 所述第一发射器还用于向所述客户端发送上传响应消息,所述上传响应消息包括所述请求头域,以便于所述客户端继续上传所述文件;
[0088] 所述第一接收器还用于接收所述客户端根据所述上传响应消息发送的所述文件,所述第一存储器还用于并存储所述文件,所述第一处理器根据所述应用标识从所述数据库中获取所述上传后回调地址,所述第一发射器调用所述上传后回调地址向所述应用服务端发送第二通知消息,所述第二通知消息包括所述文件的第二文件信息。
[0089] 结合第七方面的第三种可能实现的方式,在第六种可能实现的方式中,当所述回调地址是在所述客户端发送的请求消息的请求头域中携带的时,所述第一接收器、所述第一处理器、所述第一存储器以及第一发射器用于:
[0090] 若满足所述文件接收条件,则所述第一处理器从所述请求头域中获取所述上传前回调地址,所述第一发射器调用所述上传前回调地址向所述应用服务端发送第一通知消息,所述第一通知消息包括所述文件的第一文件信息;
[0091] 所述第一发射器向所述客户端发送上传响应消息,所述上传响应消息包括所述请求头域,以便于所述客户端继续上传所述文件;
[0092] 所述第一接收器还用于接收所述客户端根据所述上传响应消息发送的所述文件,所述第一存储器还用于并存储所述文件,所述第一处理器从所述请求头域中获取所述上传后回调地址,所述第一发射器调用所述上传后回调地址向所述应用服务端发送第二通知消息,所述第二通知消息包括所述文件的第二文件信息。
[0093] 结合第七方面或第七方面的第一种可能实现的方式至第六种可能实现的方式,在第七种可能实现的方式中,还包括:
[0094] 在接收完所述文件后,所述第一发射器还用于向所述客户端发送完成响应消息。
[0095] 第八方面,提供一种应用服务端,包括:
[0096] 第二发射器,用于向上传服务端发送注册消息,所述注册消息包括文件上传时的回调地址;
[0097] 第二接收器,用于在注册完成后,接收所述上传服务端根据所述回调地址发送的所述文件上传的通知消息,以获取所述文件的文件信息。
[0098] 结合第八方面,在第一种可能实现的方式中,所述回调地址包括上传前回调地址和上传后回调地址。
[0099] 结合第八方面的第一种可能实现的方式,在第二种可能实现的方式中,所述第二接收器用于:
[0100] 接收所述上传服务端根据所述上传前回调地址发送的第一通知消息,所述第一通知消息包括所述文件的第一文件信息;
[0101] 当所述上传服务端接收完所述文件时,接收所述上传服务端根据所述上传后回调地址发送的第二通知消息,所述第二通知消息包括所述文件的第二文件信息。
[0102] 第九方面,提供一种客户端,包括:
[0103] 第三发射器,用于向上传服务端发送请求消息,所述请求消息包括请求头域;
[0104] 第三接收器,用于接收所述上传服务端发送的上传响应消息,所述上传响应消息包括所述请求头域;
[0105] 第三处理器,用于根据所述上传响应消息,向所述上传服务端上传文件。
[0106] 结合第九方面,在第一种可能实现的方式中,所述请求头域包括应用标识,或者所述请求头域包括回调地址和所述应用标识。
[0107] 结合第九方面的第一种可能实现的方式,在第二种可能实现的方式中,在所述上传服务端通过所述回调地址向应用服务端回调成功之后,所述第三接收器还用于接收所述上传服务端发送的完成响应消息。
[0108] 第十方面,提供一种通信系统,包括:
[0109] 所述第七方面提供的所述上传服务端,所述第八方面提供的所述应用服务端和所述第九方面提供的所述客户端。
[0110] 本发明实施例提供一种文件上传方法、客户端和服务端,上传服务端接收客户端发送的请求消息,请求消息包括请求头域,根据请求消息中的请求头域判断是否满足文件的接收条件,若满足文件的接收条件,则接收文件,并根据回调地址向应用服务端发送通知消息,其中,回调地址是在客户端发送的请求消息的请求头域中携带的,或回调地址是从应用服务端获取的,能够简化文件上传方式,增强上传前后处理能力,且应用服务端无需购买和维护存储设备。附图说明
[0111] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0112] 图1为本发明实施例提供的一种文件上传方法流程示意图;
[0113] 图2为本发明又一实施例提供的一种文件上传方法流程示意图;
[0114] 图3为本发明又一实施例提供的一种文件上传方法流程示意图;
[0115] 图4为本发明又一实施例提供的一种文件上传方法流程示意图;
[0116] 图5为本发明又一实施例提供的一种文件上传方法流程示意图;
[0117] 图6为本发明又一实施例提供的一种上传服务端结构示意图;
[0118] 图7为本发明又一实施例提供的另一种上传服务端结构示意图;
[0119] 图8为本发明又一实施例提供的又一种上传服务端结构示意图;
[0120] 图9为本发明又一实施例提供的又一种上传服务端结构示意图;
[0121] 图10为本发明又一实施例提供的又一种上传服务端结构示意图;
[0122] 图11为本发明又一实施例提供的一种应用服务端结构示意图;
[0123] 图12为本发明又一实施例提供的一种客户端结构示意图;
[0124] 图13为本发明又一实施例提供的一种上传服务端结构示意图;
[0125] 图14为本发明又一实施例提供的一种应用服务端结构示意图;
[0126] 图15为本发明又一实施例提供的一种客户端结构示意图;
[0127] 图16为本发明又一实施例提供的一种通信系统结构示意图。

具体实施方式

[0128] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0129] 本发明实施例中的系统架构,可以包括客户端、CDN(Content Delivery Network,内容分发网络)节点和App站点(Application,应用服务端),该客户端、CDN节点和App站点均使用HTTP(Hyper Text Transport Protocol,超文本传输协议)通信协议进行通信。客户端和CDN节点需要支持100-continue处理。
[0130] 本发明实施例提供一种文件上传方法,如图1所示,包括:
[0131] 101、上传服务端接收客户端发送的请求消息,请求消息包括请求头域。
[0132] 其中,上传服务端可以为基于云存储的CDN(Content Delivery Network,内容分发网络)节点,该CDN节点有云存储和传统CDN的优点,提供了海量存储能力,用户可以从最近的CDN节点上传和下载文件。
[0133] 102、上传服务端根据请求消息中的请求头域判断是否满足文件的接收条件。
[0134] 其中,该客户端发送的请求消息中的请求头域可以包含Expect:100-continue,用来询问CDN是否愿意接收文件。
[0135] 103、若满足文件的接收条件,则上传服务端接收文件,并根据回调地址向应用服务端发送通知消息。
[0136] 其中,App(Application,应用服务端)站点可以为使用了CDN节点上传、下载服务的网站。该回调地址可以包括上传前回调地址和上传后回调地址。
[0137] 示例性的,回调地址是在客户端发送的请求消息的请求头域中携带的,或回调地址是从应用服务端获取的。
[0138] 具体的,当回调地址是从应用服务端获取的时,接收应用服务端发送的注册消息,注册消息包括回调地址,将回调地址保存在数据库中。若满足文件的接收条件,则CDN节点根据应用标识从数据库中获取上传前回调地址,并调用上传前回调地址向应用服务端发送第一通知消息,第一通知消息包括文件的第一文件信息,而后向客户端发送上传响应消息,上传响应消息包括请求头域,以便于客户端继续上传文件,进而接收并存储客户端根据上传响应消息发送的文件,而后根据应用标识从数据库中获取上传后回调地址,并调用上传后回调地址向应用服务端发送第二通知消息,第二通知消息包括文件的第二文件信息。
[0139] 当回调地址是在客户端发送的请求消息的请求头域中携带的时,若满足文件的接收条件,则CDN节点从请求头域中获取上传前回调地址,并调用上传前回调地址向应用服务端发送第一通知消息,第一通知消息包括文件的第一文件信息,而后向客户端发送上传响应消息,上传响应消息包括请求头域,以便于客户端继续上传文件,进而接收并存储客户端根据上传响应消息发送的文件,而后从请求头域中获取上传后回调地址,并调用上传后回调地址向应用服务端发送第二通知消息,第二通知消息包括文件的第二文件信息。
[0140] 本发明实施例提供一种文件上传方法,上传服务端接收客户端发送的请求消息,请求消息包括请求头域,根据请求消息中的请求头域判断是否满足文件的接收条件,若满足文件的接收条件,则接收文件,并根据回调地址向应用服务端发送通知消息,能够简化文件上传方式,增强上传前后处理能力,且应用服务端无需购买和维护存储设备。
[0141] 本发明又一实施例提供一种文件上传方法,如图2所示,包括:
[0142] 201、上传服务端接收客户端发送的请求消息,请求消息包括请求头域。
[0143] 其中,客户端可以为用户使用的手机、电脑等设备,上传服务端可以为CDN节点,提供了上传、下载服务。客户端、App站点和CDN节点均使用HTTP(Hyper Text Transport Protocol,超文本传输协议)协议通信。
[0144] 具体的,客户端向CDN节点上传文件前,向CDN节点发送HTTP消息,该请求消息包括请求头域,用来询问CDN节点是否愿意接受客户端上传文件。该请求头域中可以包含第一状态码Expect:100-continue,即客户端和CDN节点需要支持对HTTP1.1协议中100-continue状态码的处理。该请求头域还可以包括Appid(Application IDentity,应用标识)以及回调地址。该回调地址可以包括上传前回调地址(callback_url_pre)和上传后回调地址(callback_url_post),以便于CDN节点在接收到客户端发送的请求消息后,根据该回调地址通知App站点上传的文件信息。Appid应用标识为用来标示App应用服务端的,CDN可以根据该Appid来区分App站点。因此,该请求程序代码可以如下:
[0145] POST/app1/path/filename.ext HTTP/1.1
[0146] Host:upload.cdn.com
[0147] Expect:100-continue
[0148] appid:app1
[0149] callback_url_pre:http://app1_domain_name/callback_url_pre
[0150] callback_url_post:http://app1_domain_name/callback_url_post
[0151] 202、上传服务端根据请求消息中的请求头域判断是否满足文件的接收条件。
[0152] 具体的,CDN节点在接收到客户端的请求消息后阻塞,可以根据该请求消息中的请求头域判断该HTTP请求头域是否包含第一状态码Expect:100-continue头,若包含Expect:100-continue头,则继续与客户端进行通信,CDN节点愿意接收客户端的文件上传;若不包含Expect:100-continue头,则CDN节点断开与客户端的连接。
[0153] 203、若满足文件的接收条件,则上传服务端从请求头域中获取上传前回调地址,并调用上传前回调地址向应用服务端发送第一通知消息,第一通知消息包括文件的第一文件信息。
[0154] 具体的,若客户端发送的请求消息中包含Expect:100-continue头,即满足文件的接收条件。CDN便从客户端发送的请求消息的请求头域中获取上传前回调地址callback_url_pre,并调用该上传前回调地址向App站点应用服务端发送第一通知消息,以通知该App站点上传的文件的第一文件信息。该第一文件信息可以包括文件的大小和文件的名称等信息。
[0155] 该步骤过程的回调请求的程序代码可以为:
[0156] POST/callback_url_pre HTTP/1.1
[0157] Host:app1_domain_name
[0158] File_upload_info
[0159] HTTP/1.1200OK
[0160] Connection:close
[0161] {〞filename〞:〞filename.ext〞﹐〞success〞:〞true〞}
[0162] 204、上传服务端向客户端发送上传响应消息,上传响应消息包括请求头域,以便于客户端继续上传文件。
[0163] 具体的,当CDN节点调用上传前回调地址向App站点回调成功后,可以向客户端返回响应消息,同意接收客户端发送的文件内容。其中,该响应消息可以包括100-continue头,以使得客户端继续向CDN节点上传文件。客户端在从CDN节点接收到携带100-continue的响应头后,继续向CDN节点上传文件内容。当客户端没有接收到CDN节点返回的应答头时,客户端上传文件失败。
[0164] 该步骤中响应过程的程序代码可以如下:
[0165] HTTP/1.1100Continue
[0166] 205、上传服务端接收并存储客户端根据上传响应消息发送的文件,而后从请求头域中获取上传后回调地址,并调用上传后回调地址向应用服务端发送第二通知消息,第二通知消息包括文件的第二文件信息。
[0167] 具体的,CDN节点向客户端发送上传响应消息之后,继续接收客户端上传的文件,当客户端继续向CDN节点上传文件内容直至文件上传完时,CDN节点在接收完文件内容后,从客户端发送的请求头域中获取上传后回调地址callback_url_post,并调用该上传后回调地址向App站点发送第二通知消息,该第二通知消息包括客户端上传的文件的第二文件信息。该第二文件信息可以包括客户端上传文件的文件内容。其中,该第二通知消息还可以包括下载URL(Universal Resource Locator,统一资源定位符)字段,以便于用户可以使用该URL地址从CDN节点中下载该文件。
[0168] 该步骤中的程序代码可以为:
[0169] POST/callback_url_post HTTP/1.1
[0170] Host:app1_domain_name
[0171] file_upload_info
[0172] HTTP/1.1200OK
[0173] Connection:close
[0174] {〞filename〞:〞filename.ext〞﹐〞success〞:〞true〞﹐〞url〞:〞http://download.cdn.com/path/to/filename.ext〞}
[0175] 206、上传服务端在接收完文件后,向客户端发送完成响应消息。
[0176] 具体的,CDN节点在成功接收完客户端上传的文件内容后,将文件内容进行存储,并向客户端返回响应消息,客户端获取文件成功上传消息。这样,App站点在获取了文件信息后,假设用户在App应用站点下载该文件时,App站点可以通过上传后第二通知消息中该文件相应的URL引导用户在CDN节点中下载该文件内容。CDN节点作为上传服务端,提供了文件上传、下载服务,App站点作为应用服务端,使用CDN节点进行上传、下载服务。这样,在上传文件时,通过回调地址,文件只需要进行一次上传至CDN,从而简化了上传方式,增强了上传前后处理能力,应用服务端并无需购买和维护存储设施。
[0177] 本发明实施例提供一种文件上传方法,接收客户端发送的请求消息,请求消息包括请求头域,请求头域包括回调地址,根据请求消息中的请求头域判断是否满足文件的接收条件,若满足文件的接收条件,则上传服务端从请求头域中获取上传前回调地址,并调用上传前回调地址向应用服务端发送第一通知消息,第一通知消息包括文件的第一文件信息,向客户端发送上传响应消息,上传响应消息包括请求头域,以便于客户端继续上传文件,接收并存储客户端根据上传响应消息发送的文件,而后从请求头域中获取上传后回调地址,并调用上传后回调地址向应用服务端发送第二通知消息,第二通知消息包括文件的第二文件信息,在接收完文件后,向客户端发送完成响应消息,能够简化文件上传方式,增强上传前后处理能力,且应用服务端无需购买和维护存储设备。
[0178] 本发明又一实施例提供一种文件上传方法,如图3所示,包括:
[0179] 301、上传服务端接收应用服务端发送的注册消息,注册消息包括回调地址。
[0180] 其中,上传服务端可以为CDN节点,提供了上传、下载服务。App站点可以为使用了CDN节点上传、下载服务的网站。
[0181] 具体的,CDN节点可以向App站点提供回调注册接口,App站点调用该回调注册接口向CDN节点发送注册消息,该注册消息可以包括回调地址,包括上传前回调地址callback_url_pre和上传后回调地址callback_url_post。该回调地址可以通过App站点可以向CDN节点注册回调地址以获取文件上传通知。该App注册过程程序代码可以为:
[0182] POST/upload/regester HTTP/1.1
[0183] Host:upload.cdn.com
[0184] appid=app1 ﹠ callback_url_pre=http ℅ 3A ℅ 2F ℅ 2Fapp1_domain_nam e ℅ 2Fcallback_url_pre ﹠ callback_url_post=http ℅ 3A ℅ 2F ℅ 2Fapp1_domain_name℅2Fcallback_url_post
[0185] HTTP/1.1200OK
[0186] Connection:close
[0187] {〞appid〞:〞app1〞﹐〞success〞:〞true〞}
[0188] 302、上传服务端将回调地址保存在数据库中。
[0189] 具体的,当App站点向CDN节点注册成功之后,CDN节点便向App站点返回注册响应消息,通知App站点注册成功。CDN节点便将App站点注册的回调地址保存在数据库中。
[0190] 303、上传服务端接收客户端发送的请求消息,请求消息包括请求头域。
[0191] 具体的,客户端、App站点和CDN节点均使用HTTP(Hyper Text Transport Protocol,超文本传输协议)协议通信。当客户端向CDN节点请求上传文件时,向CDN节点发送请求消息,该请求消息包括请求头域,该请求头域包括第一状态码Expect:100-continue,即客户端和CDN节点需要支持对HTTP1.1协议中100-continue状态码的处理。该请求头域还包括Appid,Appid应用标识为用来标示App应用服务端,CDN节点可以根据该Appid来区分App站点。该请求消息的程序代码可以如下:
[0192] POST/app1/path/filename.ext HTTP/1.1
[0193] Host:upload.cdn.com
[0194] Expect:100-continue
[0195] appid:app1
[0196] 304、上传服务端根据请求消息中的请求头域判断是否满足文件的接收条件。
[0197] 具体的,CDN节点在接收到客户端的请求消息后阻塞,可以根据该请求消息中的请求头域判断该HTTP请求头域是否包含第一状态码Expect:100-continue头,若包含Expect:100-continue头,则继续与客户端进行通信,CDN节点愿意接收客户端的文件上传;若不包含Expect:100-continue头,则CDN节点断开与客户端的连接。
[0198] 305、若满足文件的接收条件,则上传服务端根据应用标识从数据库中获取上传前回调地址,并调用上传前回调地址向应用服务端发送第一通知消息,第一通知消息包括文件的第一文件信息。
[0199] 具体的,当客户端上传文件时的请求消息满足文件的接收条件时,则CDN节点便根据Appid应用标识从数据库中调用上传前回调地址callback_url_pre,并调用该上传前回调地址向App站点发送第一通知消息,以通知App站点客户端上传的文件的第一文件信息。该第一文件信息可以包括文件的大小和文件的名称等信息。
[0200] 该步骤过程的回调请求的程序代码可以为:
[0201] POST/callback_url_pre HTTP/1.1
[0202] Host:app1_domain_name
[0203] File_upload_info
[0204] HTTP/1.1200OK
[0205] Connection:close
[0206] {〞filename〞:〞filename.ext〞﹐〞success〞:〞true〞}
[0207] 306、上传服务端向客户端发送上传响应消息,上传响应消息包括请求头域,以便于客户端继续上传文件。
[0208] 具体的,当CDN节点调用上传前回调地址向App站点回调成功后,可以向客户端返回响应消息,同意接收客户端发送的文件内容。其中,该响应消息可以包括100-continue头,以使得客户端继续向CDN节点上传文件。
[0209] 该步骤中响应过程的程序代码可以如下:
[0210] HTTP/1.1100Continue
[0211] 客户端在从CDN节点接收到携带100-continue的响应头后,继续向CDN节点上传文件内容。当客户端没有接收到CDN节点返回的应答头时,客户端上传文件失败。
[0212] 307、上传服务端接收并存储客户端根据上传响应消息发送的文件,而后根据应用标识从数据库中获取上传后回调地址,并调用上传后回调地址向应用服务端发送第二通知消息,第二通知消息包括文件的第二文件信息。
[0213] 具体的,当客户端继续向CDN节点上传文件内容直至文件上传完时,CDN节点在接收完文件内容后,CDN节点根据该Appid应用标识在数据库中查询获取App站点注册的上传后回调地址callback_url_post,向App站点通知上传的第二文件信息。该第二文件信息可以包括客户端上传文件的文件内容。其中,该第二通知消息还可以包括下载URL字段,以便于用户可以使用该URL地址从CDN节点中下载该文件。
[0214] 该步骤中的程序代码可以为:
[0215] POST/callback_url_post HTTP/1.1
[0216] Host:app1_domain_name
[0217] file_upload_info
[0218] HTTP/1.1200OK
[0219] Connection:close
[0220] {〞filename〞:〞filename.ext〞﹐〞success〞:〞true〞﹐〞url〞:〞http://download.cdn.com/path/to/filename.ext〞}
[0221] 308、上传服务端在接收完文件后,向客户端发送完成响应消息。
[0222] 具体的,CDN节点在成功接收完客户端上传的文件内容后,将文件内容进行存储,并向客户端返回响应消息,客户端获取文件成功上传消息。这样,App站点在获取了文件信息后,假设用户在App应用站点下载该文件时,App站点可以通过上传后第二通知消息中该文件相应的URL使引导用户在CDN节点中下载该文件内容。CDN节点作为上传服务端,提供了文件上传、下载服务,App站点作为应用服务端,使用CDN节点进行上传、下载服务。此外,CDN节点采用了CDN和云存储结合的架构,这样,在上传文件时,客户端上传的文件只需要进行一次上传至CDN,从而简化了上传方式,增强了上传前后处理能力,App站点并无需购买和维护存储设施。
[0223] 本发明实施例提供一种文件上传方法,接收应用服务端发送的注册消息,注册消息包括回调地址,将回调地址保存在数据库中,接收客户端发送的请求消息,请求消息包括请求头域,根据请求消息中的请求头域判断是否满足文件的接收条件,若满足文件的接收条件,则上传服务端根据应用标识从数据库中获取上传前回调地址,并调用上传前回调地址向应用服务端发送第一通知消息,第一通知消息包括文件的第一文件信息,而后向客户端发送上传响应消息,上传响应消息包括请求头域,以便于客户端继续上传文件,进而接收并存储客户端根据上传响应消息发送的文件,而后根据应用标识从数据库中获取上传后回调地址,并调用上传后回调地址向应用服务端发送第二通知消息,第二通知消息包括文件的第二文件信息,在接收完文件后,向客户端发送完成响应消息,能够简化文件上传方式,增强上传前后处理能力,且应用服务端无需购买和维护存储设备。
[0224] 本发明又一实施例提供一种文件上传方法,如图4所示,包括:
[0225] 401、应用服务端向上传服务端发送注册消息,注册消息包括文件上传时的回调地址。
[0226] 其中,应用服务端为App站点,例如可以为互联网应用站点、网站等。CDN节点提供了回调注册接口,App站点可以调用该回调注册接口向CDN节点发送注册消息,该注册消息包括回调地址,包括上传前回调地址和上传后回调地址。该回调地址可以通过App站点可以向CDN节点注册回调地址以获取文件上传通知。
[0227] App注册过程程序代码可以为:
[0228] POST/upload/regester HTTP/1.1
[0229] Host:upload.cdn.com
[0230] appid=app1﹠callback_url_pre=http℅3A℅2F℅2Fapp1_domain_nam e℅2Fc[0231] allback_url_pre ﹠callback_url_post=http ℅ 3A ℅ 2F ℅ 2Fapp1_domain_name℅2Fcallback_url_post
[0232] HTTP/1.1200OK
[0233] Connection:close
[0234] {〞appid〞:〞app1〞﹐〞success〞:〞true〞}
[0235] 402、在应用服务端注册完成后,接收上传服务端根据回调地址发送的文件上传的通知消息,以获取文件的文件信息。
[0236] 具体的,当App站点向CDN节点注册成功之后,CDN节点便向App站点返回注册响应消息,通知App站点注册成功。CDN节点便将App站点注册的回调地址保存在数据库中。
[0237] CDN节点接收客户端发送的请求消息,请求消息包括请求头域,CDN节点根据请求消息中的请求头域判断是否满足文件的接收条件,若满足文件的接收条件,App站点接收CDN节点根据上传前回调地址发送的第一通知消息,第一通知消息包括文件的第一文件信息该第一文件信息可以包括文件的大小和文件的名称等信息。
[0238] 其中,CDN节点获取的上传前回调地址可以从客户端发送的请求头域中获取,即请求消息的请求头域中携带回调地址,或通过Appid从数据库中获取。
[0239] 而后,CDN节点向客户端发送上传响应消息,上传响应消息包括请求头域,以便于客户端继续上传文件。
[0240] 当CDN节点接收完文件时,CDN节点从客户端发送的请求头域中获取上传后回调地址,或通过Appid从数据库中获取上传后回调地址,并通过该上传后回调地址向App站点发送第二通知消息,即App站点接收上传服务端根据上传后回调地址发送的第二通知消息,第二通知消息包括文件的第二文件信息,该第二文件信息可以包括客户端上传文件的文件内容。
[0241] 本发明实施例提供一种文件上传方法,应用服务端向上传服务端发送注册消息,注册消息包括文件上传时的回调地址,在应用服务端注册完成后,接收上传服务端根据回调地址发送的文件上传的通知消息,以获取文件的文件信息,能够简化文件上传方式,增强上传前后处理能力,且应用服务端无需购买和维护存储设备。
[0242] 本发明又一实施例提供一种文件上传方法,如图5所示,包括:
[0243] 501、客户端向上传服务端发送请求消息,请求消息包括请求头域。
[0244] 其中,客户端是指与服务器对应,为客户提供本地服务的程序,例如浏览器、各种手机应用。除了一些只在本地运行的应用程序之外,一般安装在普通的客户机上,需要与服务端互相配合运行。例如可以运行在用户的电脑、手机等设备中。
[0245] 该请求头域可以包括第一状态码Expect:100-continue,客户端和CDN节点需要支持对HTTP1.1协议中100-continue状态码的处理。还包括Appid,该Appid为用来标示App应用服务端的,CDN可以根据该Appid来区分App站点。
[0246] 502、客户端接收上传服务端发送的上传响应消息。
[0247] 具体的,当客户端向CDN节点发送请求消息后,CDN节点根据请求消息的请求头域是否包含第一状态码Expect:100-continue,判断是否满足文件的接收条件,若满足文件接收条件,CDN节点通过上传前回调地址向客户端发送第一通知消息,第一通知消息包括文件的第一文件信息,而后向客户端发送上传响应消息。
[0248] 其中,该上传响应消息包括客户端发送的请求消息中的请求头域,以便于客户端可以继续上传文件。回调地址可以是在客户端发送的请求消息的请求头域中携带的,或回调地址是从应用服务端获取的,包括上传前回调地址和上传后回调地址。当回调地址是从应用服务端获取的时,通过接收应用服务端发送的注册消息,注册消息包括回调地址,并将回调地址保存在数据库中。
[0249] 503、客户端根据上传响应消息,向上传服务端上传文件。
[0250] 具体的,客户端在从CDN节点接收到携带100-continue的响应头后,继续向CDN节点上传文件内容。当客户端没有接收到CDN节点返回的应答头时,客户端上传文件失败。
[0251] 而后,CDN节点从请求头域中获取上传后回调地址,或从数据库中获取上传后回调地址,并调用上传后回调地址向应用服务端发送第二通知消息,第二通知消息包括文件的第二文件信息。
[0252] 本发明实施例提供一种文件上传方法,客户端向上传服务端发送请求消息,在接收上传服务端发送的上传响应消息后,根据该上传响应消息向上传服务端上传文件,能够简化文件上传方式。
[0253] 本发明又一实施例提供一种上传服务端01,如图6所示,包括:
[0254] 接收单元016,用于接收客户端发送的请求消息,请求消息包括请求头域。
[0255] 判断单元011,用于根据请求消息中的请求头域判断是否满足文件接收条件。
[0256] 处理单元012,用于若满足文件接收条件,则接收文件,并根据回调地址向应用服务端发送通知消息。
[0257] 其中,回调地址包括上传前回调地址和上传后回调地址。
[0258] 可选的,请求头域还包括应用标识,应用标识是用来标识应用服务端的。
[0259] 可选的,回调地址是在客户端发送的请求消息的请求头域中携带的,或回调地址是从应用服务端获取的。
[0260] 可选的,如图7所示,当回调地址是从应用服务端获取的时,还包括:
[0261] 第一接收单元014,用于在接收客户端发送的请求消息之前,接收应用服务端发送的注册消息,注册消息包括回调地址。
[0262] 存储单元015,用于将回调地址保存在数据库中。
[0263] 可选的,如图8所示,当回调地址是从应用服务端获取的时,处理单元012可以包括:
[0264] 第一处理子单元0121,用于若满足文件接收条件,则根据应用标识从数据库中获取上传前回调地址,并调用上传前回调地址向应用服务端发送第一通知消息,第一通知消息包括文件的第一文件信息。
[0265] 第一发送子单元0122,用于向客户端发送上传响应消息,上传响应消息包括请求头域,以便于客户端继续上传文件。
[0266] 第二处理子单元0123,用于接收并存储客户端根据上传响应消息发送的文件,而后根据应用标识从数据库中获取上传后回调地址,并调用上传后回调地址向应用服务端发送第二通知消息,第二通知消息包括文件的第二文件信息。
[0267] 可选的,如图9所示,当回调地址是在客户端发送的请求消息的请求头域中携带的时,处理单元012可以包括:
[0268] 第三处理子单元0124,用于若满足文件的接收条件,则从请求头域中获取上传前回调地址,并调用上传前回调地址向应用服务端发送第一通知消息,第一通知消息包括文件的第一文件信息。
[0269] 第二发送子单元0125,用于向客户端发送上传响应消息,上传响应消息包括请求头域,以便于客户端继续上传文件。
[0270] 第四处理子单元0126,用于接收并存储客户端根据上传响应消息发送的文件,而后从请求头域中获取上传后回调地址,并调用上传后回调地址向应用服务端发送第二通知消息,第二通知消息包括文件的第二文件信息。
[0271] 可选的,如图10所示,还可以包括:
[0272] 响应单元013,用于在接收完文件后,向客户端发送完成响应消息。
[0273] 其中,接收单元016用于执行图1所示的实施例中的步骤101,或图2所示的实施例中的步骤201,或图3所示实施例中的步骤303;判断单元011用于执行图1所示的实施例中的步骤102,或图2所示实施例中的步骤202,或图3所示实施例中的步骤304;处理单元012用于执行图1所示实施例中的步骤103,或图2所示实施例中的步骤203~步骤205,或图3所示实施例中的步骤305~步骤307;第一接收单元014用于执行图3所示实施例中的步骤301;存储单元015用于执行图3所示实施例中的步骤302;第一处理子单元0121用于执行图3所示实施例中的步骤305;第一发送子单元0122用于执行图3所示实施例中的步骤306;第二处理子单元0123用于执行图3所示实施例中的步骤307;第三处理子单元0124用于执行图2所示实施例中的步骤203;第二发送子单元0125用于执行图2所示实施例中的步骤204;第四处理子单元0126用于执行图2所示实施例中的步骤205;响应单元
013用于执行图2所示实施例中的步骤206,或图3所示实施例中的步骤308。
[0274] 本发明实施例提供一种上传服务端,上传服务端接收客户端发送的请求消息,请求消息包括请求头域,根据请求消息中的请求头域判断是否满足文件的接收条件,若满足文件的接收条件,则接收文件,并根据回调地址向应用服务端发送通知消息,能够简化文件上传方式,增强上传前后处理能力,且应用服务端无需购买和维护存储设备。
[0275] 本发明又一实施例提供一种应用服务端02,如图11所示,包括:
[0276] 第二发送单元021,用于向上传服务端发送注册消息,注册消息包括文件上传时的回调地址。
[0277] 第二接收单元022,用于在注册完成后,接收上传服务端根据回调地址发送的文件上传的通知消息,以获取文件的文件信息。
[0278] 其中,回调地址包括上传前回调地址和上传后回调地址。
[0279] 可选的,第二接收单元022可以用于:
[0280] 接收上传服务端根据上传前回调地址发送的第一通知消息,第一通知消息包括文件的第一文件信息;
[0281] 当上传服务端接收完文件时,接收上传服务端根据上传后回调地址发送的第二通知消息,第二通知消息包括文件的第二文件信息。
[0282] 其中,第二发送单元021用于执行图4所示的实施例中的步骤401,第二接收单元022用于执行图4所示的实施例中的步骤402。
[0283] 本发明实施例提供一种应用服务端,应用服务端向上传服务端发送注册消息,注册消息包括文件上传时的回调地址,在应用服务端注册完成后,接收上传服务端根据回调地址发送的文件上传的通知消息,以获取文件的文件信息,能够简化文件上传方式,增强上传前后处理能力,且应用服务端无需购买和维护存储设备。
[0284] 本发明又一实施例提供一种客户端03,如图12所示,包括:
[0285] 第三发送单元031,用于向上传服务端发送请求消息,请求消息包括请求头域。
[0286] 第三接收单元032,用于接收上传服务端发送的上传响应消息,上传响应消息包括请求头域。
[0287] 文件上传单元033,用于根据上传响应消息,向上传服务端上传文件。
[0288] 可选的,请求头域包括应用标识,或者请求头域包括回调地址和应用标识。
[0289] 可选的,还可以包括:
[0290] 在上传服务端通过回调地址向应用服务端回调成功之后,接收上传服务端发送的完成响应消息。
[0291] 其中,第三发送单元031用于执行图5所示的实施例中的步骤501;第三接收单元032用于执行图5所示实施例中的步骤502;文件上传单元033用于执行图5所示实施例中的步骤503。
[0292] 本发明实施例提供一种客户端,客户端向上传服务端发送请求消息,请求消息包括请求头域,接收上传服务端发送的上传响应消息,上传响应消息包括请求头域,根据上传响应消息,向上传服务端上传文件,能够简化文件上传方式。
[0293] 本发明又一实施例提供一种上传服务端04,如图13所示,该上传服务端04包括:第一总线041,以及连接到第一总线041的第一处理器042、第一存储器043、第一接收器
044和第一发射器045,其中,该第一存储器043用于存储指令,该第一接收器044用于执行该指令用于接收客户端发送的请求消息,请求消息包括请求头域,具体用于执行图1所示的实施例中的步骤101,或图2所示的实施例中的步骤201,或图3所示实施例中的步骤
303;第一处理器042用于执行该指令用于根据请求消息中的请求头域判断是否满足文件的接收条件,具体用于执行图1所示的实施例中的步骤102,或图2所示实施例中的步骤
202,或图3所示实施例中的步骤304;该第一接收器044还用于执行该指令还用于若满足文件接收条件,则接收文件,第一发射器045调用回调地址向应用服务端发送通知消息,具体用于执行图1所示实施例中的步骤103,或图2所示实施例中的步骤203~步骤205,或图3所示实施例中的步骤305~步骤307;
[0294] 在本发明实施例中,可选的,回调地址包括上传前回调地址和上传后回调地址。
[0295] 在本发明实施例中,可选的,请求头域包括应用标识,应用标识是用来标识应用服务端的。
[0296] 在本发明实施例中,可选的,回调地址是在客户端发送的请求消息的请求头域中携带的,或回调地址是从应用服务端获取的。
[0297] 在本发明实施例中个,可选的,当回调地址是从应用服务端获取的时,第一接收器044用于执行该指令,包括:
[0298] 在接收客户端发送的请求消息之前,第一接收器还用于接收应用服务端发送的注册消息,注册消息包括回调地址,具体用于执行图3所示实施例中的步骤301;
[0299] 第一存储器043用于将回调地址保存在数据库中,具体用于执行图3所示实施例中的步骤302。
[0300] 在本发明实施例中,可选的,当回调地址是从应用服务端获取的时,该第一接收器044、第一处理器042和第一发射器045执行该指令还用于:
[0301] 若满足文件接收条件,则第一处理器042并根据应用标识从数据库中获取上传前回调地址,第一发射器045调用上传前回调地址向应用服务端发送第一通知消息,第一通知消息包括文件的第一文件信息具体用于执行图3所示实施例中的步骤305;
[0302] 第一发射器045还用于向客户端发送上传响应消息,上传响应消息包括请求头域,以便于客户端继续上传文件,具体用于执行图3所示实施例中的步骤306;
[0303] 若第一接收器044还用于接收并存储客户端根据上传响应消息发送的文件,第一存储器043还用于并存储文件,第一处理器042根据应用标识从数据库中获取上传后回调地址,第一发射器045调用上传后回调地址向应用服务端发送第二通知消息,第二通知消息包括文件的第二文件信息,具体用于执行图3所示实施例中的步骤307。
[0304] 在本发明实施例中,可选的,当回调地址是在客户端发送的请求消息的请求头域中携带的时,该第一接收器044、第一处理器042、第一存储器043和第一发射器045执行该指令还用于:
[0305] 若满足文件接收条件,则第一处理器042从请求头域中获取上传前回调地址,第一发射器045调用上传前回调地址向应用服务端发送第一通知消息,第一通知消息包括文件的第一文件信息,具体用于执行图2所示实施例中的步骤203;
[0306] 第一发射器045向客户端发送上传响应消息,上传响应消息包括请求头域,以便于客户端继续上传文件,具体用于执行图2所示实施例中的步骤204;
[0307] 若第一接收器044还用于接收并存储客户端根据上传响应消息发送的文件,第一存储器043还用于并存储文件,第一处理器042从请求头域中获取上传后回调地址,第一发射器045调用上传后回调地址向应用服务端发送第二通知消息,第二通知消息包括文件的第二文件信息,具体用于执行图2所示实施例中的步骤205。
[0308] 在本发明实施例中,可选的,在接收完文件后,第一发射器045执行该指令还用于向客户端发送完成响应消息,具体用于执行图2所示实施例中的步骤206,或图3所示实施例中的步骤308。
[0309] 因此,本发明实施例的上传服务端,上传服务端接收客户端发送的请求消息,请求消息包括请求头域,根据请求消息中的请求头域判断是否满足文件的接收条件,若满足文件的接收条件,则接收文件,并根据回调地址向应用服务端发送通知消息,能够简化文件上传方式,增强上传前后处理能力。
[0310] 本发明又一实施例提供一种应用服务端05,如图14所示,该应用服务端包括:第二总线041,以及连接到第二总线041的第二处理器042、第二存储器043、第二接收器044和第二发射器045,其中,该第二存储器043用于存储指令,该第二发射器045执行该指令用于向上传服务端发送注册消息,注册消息包括文件上传时的回调地址;该第二接收器044执行该指令用于在注册完成后,接收上传服务端根据回调地址发送的文件上传的通知消息,以获取文件的文件信息。
[0311] 在本发明实施例中,可选的,回调地址包括上传前回调地址和上传后回调地址。
[0312] 在本发明实施例中,可选的,该第二接收器044执行该指令用于:
[0313] 接收上传服务端根据上传前回调地址发送的第一通知消息,第一通知消息包括文件的第一文件信息;
[0314] 当上传服务端接收完文件时,接收上传服务端根据上传后回调地址发送的第二通知消息,第二通知消息包括文件的第二文件信息。
[0315] 其中,该第二发射器045用于执行图4所示的实施例中的步骤401,该第二接收器044用于执行图4所示的实施例中的步骤402。
[0316] 因此,本发明实施例的应用服务端,应用服务端向上传服务端发送注册消息,注册消息包括文件上传时的回调地址,在应用服务端注册完成后,接收上传服务端根据回调地址发送的文件上传的通知消息,以获取文件的文件信息,能够简化文件上传方式,增强上传前后处理能力,且应用服务端无需购买和维护存储设备。
[0317] 本发明又一实施例提供一种客户端06,如图15所示,该客户端06包括:第三总线041,以及连接到第三总线041的第三处理器042、第三存储器043、第三接收器044和第三发射器045,其中,该第三存储器043用于存储指令;该第三发射器045执行该指令用于向上传服务端发送请求消息,请求消息包括请求头域;该第三接收器044执行该指令用于接收上传服务端发送的上传响应消息,上传响应消息包括请求头域;该第三处理器042执行该指令用于根据上传响应消息,向上传服务端上传文件。
[0318] 在本发明实施例中,可选的,请求头域包括应用标识,或者请求头域包括回调地址和应用标识。
[0319] 在本发明实施例中,可选的,在上传服务端通过回调地址向应用服务端回调成功之后,第三接收器044用于执行该指令还用于接收上传服务端发送的完成响应消息。
[0320] 其中,该第三发射器045用于执行图5所示的实施例中的步骤501;该第三接收器044用于执行图5所示实施例中的步骤502;该第三处理器042用于执行图5所示实施例中的步骤503。
[0321] 因此,本发明实施例的客户端,客户端向上传服务端发送请求消息,请求消息包括请求头域,接收上传服务端发送的上传响应消息,上传响应消息包括请求头域,根据上传响应消息,向上传服务端上传文件,能够简化文件上传方式。
[0322] 本发明又一实施例提供一种通信系统1,如图16所示,包括:前述实施例提供的上传服务端04、应用服务端05和客户端06。
[0323] 其中,上传服务端04用于执行图1所示实施例中的步骤101~步骤103,或图2所示实施例中的步骤201~步骤206,或图3所示实施例中的步骤301~308;应用服务端05用于执行图4所示实施例中的步骤401~步骤402;客户端06用于执行图5所示实施例中的步骤501~步骤503。
[0324] 本发明实施例提供一种通信系统,上传服务端接收客户端发送的请求消息,请求消息包括请求头域,根据请求消息中的请求头域判断是否满足文件接收条件,若满足文件的接收条件,则接收文件,并根据回调地址向应用服务端发送通知消息,回调地址包括上传前回调地址和上传后回调地址,若接收完文件,则将文件存储在上传服务端中,并向客户端发送完成响应消息,其中,回调地址是在客户端发送的请求消息的请求头域中携带的,或回调地址是从应用服务端获取的,能够简化文件上传方式,增强上传前后处理能力,且应用服务端无需购买和维护存储设备。
[0325] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,客户端、服务端和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0326] 另外,在本发明各个实施例中的设备和系统中,各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。且上述的各单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0327] 实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:U盘、移动硬盘只读存储器(Read Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0328] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
QQ群二维码
意见反馈