著录项信息
专利名称 | 一种数据传输方法和数据传输系统 |
申请号 | CN201310753018.4 | 申请日期 | 2013-12-31 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2015-07-01 | 公开/公告号 | CN104754012A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/08 | IPC分类号 | H;0;4;L;2;9;/;0;8;;;H;0;4;L;1;/;1;6查看分类表>
|
申请人 | 北京新媒传信科技有限公司 | 申请人地址 | 北京市海淀区海淀大街34号8层810室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京新媒传信科技有限公司 | 当前权利人 | 北京新媒传信科技有限公司 |
发明人 | 黄冰清;王延维 |
代理机构 | 北京市隆安律师事务所 | 代理人 | 权鲜枝 |
摘要
本发明公开一种数据传输方法和数据传输系统。本发明提供的数据传输方法包括:向服务器发送上传请求,上传请求中包括上传文件总长度,以使服务器判断文件是否上传完毕;确定第一次批量上传的第一数据包数量和第一数据包大小;对上传文件进行拆包,并按照第一数据包大小,将第一数据包数量的数据包上传至服务器;确认当前网络连接正常后,确定第二次批量上传的第二数据包数量和第二数据包大小,按照第二数据包大小,将第二数据包数量的数据包上传至所述服务器,直至将上传文件总长度对应的文件上传完毕。本方案实现了客户端和服务器之间批量数据传输,并具有断点续传功能;该方案可保证文件的下载安全,以及对文件按照期限分类进行有效管理。
1.一种数据传输方法,其特征在于,所述方法包括:
向服务器发送上传请求,所述上传请求中包括上传文件总长度,以使所述服务器根据所述上传文件总长度判断文件是否上传完毕;
确定第一次批量上传的第一数据包数量和第一数据包大小;
对所述上传文件进行拆包,并按照所述第一数据包大小,将所述第一数据包数量的数据包上传至所述服务器;
确认当前网络连接正常后,确定第二次批量上传的第二数据包数量和第二数据包大小,按照所述第二数据包大小,将所述第二数据包数量的数据包上传至所述服务器,直至将所述上传文件总长度对应的文件上传完毕;
所述批量上传是指多个数据包依次顺序发送,每个包的发送不需要等服务器的应答之后再发;
在将所述上传文件总长度对应的文件上传完毕之前,所述方法还包括:
若上传操作中断,再次发起对上传中断的文件的上传操作时,向服务器发送续传请求;
接收服务器返回的续传请求响应,并根据所述续传请求响应中的已上传数据包的偏移量,从所述偏移量对应的上传中断点开始批量上传所述文件直至所述上传文件总长度对应的文件上传完毕。
2.如权利要求1所述的方法,其特征在于,
所述上传请求中还包括文件可下载用户列表,以使服务器利用该文件可下载用户列表验证请求下载文件的用户的权限;和/或,
所述上传请求中还包括文件是否可删除的指示信息,以使服务器利用该文件是否可删除的指示信息对接收到的上传文件进行删除。
3.如权利要求1-2中任一项所述的方法,其特征在于,所述方法包括:
向服务器发送下载请求,所述下载请求中包括下载文件总长度、每次批量下载的下载数据包数量以及下载数据包大小;
接收所述服务器在第一次批量下载中,按照所述每次批量下载的下载数据包数量以及下载数据包大小发送的下载文件的数据包;
在所述服务器确认网络连接正常后,接收所述服务器按照所述每次批量下载的下载数据包数量以及下载数据包大小发送的第二次批量下载数据包,直至所述下载文件总长度对应的文件从服务器下载完毕。
4.如权利要求3所述的方法,其特征在于,
若在已下载的数据包对应的文件长度小于所述下载文件总长度的情况下,文件的下载操作中断,记录下载中断点对应的已下载数据包的下载偏移量;
当再次发起对下载中断的文件的下载操作时,向服务器发送继续下载请求,所述继续下载请求中包括下载偏移量、每次批量下载的下载数据包数量以及下载数据包大小;
接收所述服务器从所述下载偏移量对应的下载中断点开始按照所述每次批量下载的下载数据包数量以及下载数据包大小发送的批量下载数据,直至所述下载文件总长度对应的文件下载完毕。
5.一种数据传输方法,其特征在于,所述方法包括:
接收客户端的上传请求,所述上传请求中包括上传文件总长度;
接收客户端在确定第一次批量上传的第一数据包数量和第一数据包大小之后,按照所述第一数据包大小上传的第一数据包数量的数据包;
根据所述上传文件总长度确定所述上传文件未上传完毕;
接收所述客户端在确认当前网络连接正常、确定第二次批量上传的第二数据包数量和第二数据包大小之后按照所述第二数据包大小上传的所述第二数据包数量的数据包,直至对所述上传文件总长度对应的文件接收完毕;
所述批量上传是指多个数据包依次顺序发送,每个包的发送不需要等服务器的应答之后再发;
在所述对所述上传文件总长度对应的文件接收完毕之前,所述方法还包括:
若上传操作中断,记录已上传数据包的偏移量;
接收到客户端发送的续传请求,将所述已上传数据包的偏移量携带在续传请求响应中发送给客户端,以使客户端从所述偏移量对应的上传中断点开始批量上传所述文件。
6.根据权利要求5所述的方法,其特征在于,
所述上传请求中还包括文件是否可删除的指示信息;
当所述文件是否可删除的指示信息指示文件是不可删除的,则将接收到的文件放入服务器的第一类型文件夹并固定保存;
当所述文件是否可删除的指示信息指示文件是可删除的,则将接收到的文件按照接收日期放入服务器的第二类型文件夹中,以及,定时判断所述第二类型文件夹对应的接收日期距离当前的时间是否超过设定的保存期限,若是,遍历该第二类型文件夹中所有文件的文件标识符,删除该文件标识符对应的索引文件和接收到的文件,若否,保留该第二类型的文件夹。
7.根据权利要求4-6中任一项所述的方法,其特征在于,所述对所述上传文件总长度对应的文件接收完毕之后,所述方法还包括:
存储所述接收到的文件,并将该文件的存储地址、文件标识符记录在索引文件中;
所述方法还包括:
接收客户端发送的下载请求,所述下载请求中包括文件标识符、下载文件总长度、每次批量下载的下载数据包数量以及下载数据包大小;
根据文件标识符从索引文件中获取请求下载的文件的存储地址,根据该存储地址查找到需要下载的文件;
执行第一次批量下载,按照所述下载数据包数量和下载数据包大小将需要下载的文件的数据包批量下载至客户端;
确认网络连接正常后,按照所述下载数据包数量和下载数据包大小执行第二次批量下载,并将第二次批量下载数据发送给客户端,直至将所述下载文件总长度对应的文件全部下载至客户端;
所述下载请求中还包括请求下载用户的用户信息,所述执行第一次批量下载之前,所述方法还包括:
将所述用户信息与记录的文件可下载用户列表进行比对,当所述用户信息在所述文件可下载用户列表中时,执行所述第一次批量下载,当所述用户信息不在所述文件可下载用户列表中时,不执行所述第一次批量下载。
8.一种数据传输系统,其特征在于,所述系统包括客户端和服务器,
所述客户端包括上传请求单元、接收确认单元和批量上传单元;
所述上传请求单元,用于向服务器发送上传请求,所述上传请求中包括上传文件总长度,以使所述服务器根据所述上传文件总长度判断文件是否上传完毕;
所述接收确认单元,用于确定第一次批量上传的第一数据包数量和第一数据包大小;
所述批量上传单元,用于对所述上传文件进行拆包,并按照所述第一数据包大小,将所述第一数据包数量的数据包上传至所述服务器;确认当前网络连接正常后,确定第二次批量上传的第二数据包数量和第二数据包大小,按照所述第二数据包大小,将所述第二数据包数量的数据包上传至所述服务器,直至将所述上传文件总长度对应的文件上传完毕;
所述服务器包括上传请求接收单元、批量接收单元、确定单元和存储单元;
所述上传请求接收单元,用于接收客户端的上传请求,所述上传请求中包括上传文件总长度;
所述批量接收单元,用于接收客户端在确定第一次批量上传的第一数据包数量和第一数据包大小之后,按照所述第一数据包大小上传的第一数据包数量的数据包;
确定单元,用于根据所述上传文件总长度确定所述上传文件未上传完毕;
所述批量接收单元在确定所述上传文件未上传完毕之后,还用于接收所述客户端在确认当前网络连接正常、确定第二次批量上传的第二数据包数量和第二数据包大小之后按照所述第二数据包大小上传的所述第二数据包数量的数据包,直至对所述上传文件总长度对应的文件接收完毕;
所述上传请求中还包括文件标识符,所述存储单元,用于存储所述接收到的文件,并将该文件的存储地址、文件标识符记录在索引文件中;以及,
所述客户端还包括下载请求单元和批量下载单元;
所述下载请求单元,用于向服务器发送下载请求,所述下载请求中包括文件标识符、下载文件总长度、每次批量下载的下载数据包数量以及下载数据包大小;
所述批量下载单元,用于接收到服务器对所述下载请求的应答后,在第一次批量下载中,按照所述下载数据包数量和下载数据包大小从服务器批量下载数据包;当确认所述第一次批量下载成功后,按照所述下载数据包数量和下载数据包大小执行第二次批量下载,直至将所述下载文件总长度对应的文件从服务器下载完毕;
所述服务器还包括下载请求接收单元、下载文件查找单元和批量发送单元;
所述下载请求接收单元,用于接收客户端发送的下载请求,所述下载请求中包括文件标识符、下载文件总长度、每次批量下载的下载数据包数量以及下载数据包大小;
所述下载文件查找单元,用于根据文件标识符从索引文件中获取请求下载的文件的存储地址,根据该存储地址查找到需要下载的文件;
所述批量发送单元,用于执行第一次批量下载,按照所述下载数据包数量和下载数据包大小将需要下载的文件的数据包批量下载至客户端;确认网络连接正常后,按照所述下载数据包数量和下载数据包大小执行第二次批量下载,并将第二次批量下载数据发送给客户端,直至将所述下载文件总长度对应的文件全部下载至客户端。
一种数据传输方法和数据传输系统\n技术领域\n[0001] 本发明涉及互联网数据传输领域,特别涉及一种数据传输方法和数据传输系统。\n背景技术\n[0002] 随着互联网的不断发展,客户端和服务器之间传输文件、图片等数据越来越频繁。\n互联网传输常用的传输协议是是传输控制协议(Transmission Control Protocol简称,TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。现有的数据传输技术对数据计算拆包数以及每一包数据的大小,传输时,客户端先告诉服务器上传数据的基本信息,接着每个包以一个客户端请求,一个服务器应答的方式,一次一次传送,直到上传完为止。\n下载时则由客户端发送下载请求数据的基本信息,然后由服务器下推数据的方式,一次一次传送,直到下载完为止。这种方式实现起来虽然简单,但是存在着一些不足,例如:由于客户端是发送完一个请求后,等待这个请求的应答到来,再发下一个请求,这就造成了传输的延时,导致数据传输速度较低。\n发明内容\n[0003] 本发明提供了一种数据传输方法和数据传输系统,用以解决现有数据传输技术传输速度较低的问题。\n[0004] 根据本发明的一个方面,本发明实施例提供了一种数据传输方法,该方法包括:\n[0005] 向服务器发送上传请求,上传请求中包括上传文件总长度,以使服务器根据长传文件总长度判断文件是否上传完毕;\n[0006] 确定第一次批量上传的第一数据包数量和第一数据包大小;\n[0007] 对上传文件进行拆包,并按照第一数据包大小,将第一数据包数量的数据包上传至服务器;\n[0008] 确认当前网络连接正常后,确定第二次批量上传的第二数据包数量和第二数据包大小,按照第二数据包大小,将第二数据包数量的数据包上传至服务器,直至将上传文件总长度对应的文件上传完毕。\n[0009] 其中,上传请求中还包括文件可下载用户列表,以使服务器利用该文件可下载用户列表验证请求下载文件的用户的权限;和/或,\n[0010] 上传请求中还包括文件是否可删除的指示信息,以使服务器利用该文件是否可删除的指示信息对接收到的上传文件进行删除。\n[0011] 其中,在将上传文件总长度对应的文件上传完毕之前,方法还包括:\n[0012] 若上传操作中断,再次发起对上传中断的文件的上传操作时,向服务器发送续传请求;\n[0013] 接收服务器返回的续传请求响应,并根据续传请求响应中的已上传数据包的偏移量,从偏移量对应的上传中断点开始批量上传文件直至上传文件总长度对应的文件上传完毕。\n[0014] 其中,方法包括:向服务器发送下载请求,下载请求中包括下载文件总长度、每次批量下载的下载数据包数量以及下载数据包大小;\n[0015] 接收服务器在第一次批量下载中,按照每次批量下载的下载数据包数量以及下载数据包大小发送的下载文件的数据包;\n[0016] 在服务器确认网络连接正常后,接收服务器按照每次批量下载的下载数据包数量以及下载数据包大小发送的第二次批量下载数据包,直至下载文件总长度对应的文件从服务器下载完毕。\n[0017] 其中,若在已下载的数据包对应的文件长度小于下载文件总长度的情况下,文件的下载操作中断,记录下载中断点对应的已下载数据包的下载偏移量;\n[0018] 当再次发起对下载中断的文件的下载操作时,向服务器发送继续下载请求,继续下载请求中包括文下载偏移量、每次批量下载的下载数据包数量以及下载数据包大小;\n[0019] 接收服务器从下载偏移量对应的下载中断点开始按照每次批量下载的下载数据包数量以及下载数据包大小发送的批量下载数据,直至下载文件总长度对应的文件下载完毕。\n[0020] 根据本发明的另一个方面,本发明实施例提供了一种数据传输方法,该方法包括:\n[0021] 接收客户端的上传请求,上传请求中包括上传文件总长度;\n[0022] 接收客户端在确定第一次批量上传的第一数据包数量和第一数据包大小之后,按照第一数据包大小上传的第一数据包数量的数据包;\n[0023] 根据上传文件总长度确定上传文件未上传完毕;\n[0024] 接收客户端在确认当前网络连接正常、确定第二次批量上传的第二数据包数量和第二数据包大小之后,按照第二数据包大小上传的第二数据包数量的数据包,直至对上传文件总长度对应的文件接收完毕。\n[0025] 其中,在对上传文件总长度对应的文件接收完毕之前,方法还包括:\n[0026] 若上传操作中断,记录已上传数据包的偏移量;\n[0027] 接收到客户端发送的续传请求,将已上传数据包的偏移量携带在续传请求响应中发送给客户端,以使客户端从偏移量对应的上传中断点开始批量上传文件。\n[0028] 其中,上传请求中还包括文件是否可删除的指示信息;\n[0029] 当文件是否可删除的指示信息指示文件是不可删除的,则将接收到的文件放入服务器的第一类型文件夹并固定保存;\n[0030] 当文件是否可删除的指示信息指示文件是可删除的,则将接收到的文件按照接收日期放入服务器的第二类型文件夹中,以及,定时判断第二类型文件夹对应的接收日期距离当前的时间是否超过设定的保存期限,若是,遍历该第二类型文件夹中所有文件的文件标识符,删除该文件标识符对应的索引文件和接收到的文件,若否,保留该第二类型的文件夹。\n[0031] 其中,对上传文件总长度对应的文件接收完毕之后,方法还包括:\n[0032] 存储接收到的文件,并将该文件的存储地址、文件标识符记录在索引文件中;\n[0033] 接收客户端发送的下载请求,下载请求中包括文件标识符、下载文件总长度、每次批量下载的下载数据包数量以及下载数据包大小;\n[0034] 根据文件标识符从索引文件中获取请求下载的文件的存储地址,根据该存储地址查找到需要下载的文件;\n[0035] 执行第一次批量下载,按照下载数据包数量和下载数据包大小将需要下载的文件的数据包批量下载至客户端;\n[0036] 确认网络连接正常后,按照下载数据包数量和下载数据包大小执行第二次批量下载,并将第二次批量下载数据发送给客户端,直至将下载文件总长度对应的文件全部下载至客户端;\n[0037] 下载请求中还包括请求下载用户的用户信息,所述执行第一次批量下载之前,方法还包括:\n[0038] 将用户信息与记录的文件可下载用户列表进行比对,当用户信息在文件可下载用户列表中时,执行所述第一次批量下载,当用户信息不在文件可下载用户列表中时,不执行所述第一次批量下载。\n[0039] 根据本发明的又一个方面,本发明实施例提供了一种数据传输系统,该系统包括:\n系统包括客户端和服务器,\n[0040] 所述客户端包括上传请求单元、接收确认单元和批量上传单元;\n[0041] 所述上传请求单元,用于向服务器发送上传请求,所述上传请求中包括上传文件总长度,以使所述服务器根据所述长传文件总长度判断文件是否上传完毕;\n[0042] 所述接收确认单元,用于确定第一次批量上传的第一数据包数量和第一数据包大小;\n[0043] 所述批量上传单元,用于按照所述第一数据包大小,对所述上传文件进行拆包,并按照所述第一数据包大小,将所述第一数据包数量的数据包上传至所述服务器;确认当前网络连接正常后,确定第二次批量上传的第二数据包数量和第二数据包大小,按照所述第二数据包大小,将所述第二数据包数量的数据包上传至所述服务器,直至将所述上传文件总长度对应的文件上传完毕;\n[0044] 所述服务器包括上传请求接收单元、批量接收单元、确定单元和存储单元;\n[0045] 所述上传请求接收单元,用于接收客户端的上传请求,所述上传请求中包括上传文件总长度;\n[0046] 所述批量接收单元,用于接收客户端在确定第一次批量上传的第一数据包数量和第一数据包大小之后,按照所述第一数据包大小上传的第一数据包数量的数据包;\n[0047] 确定单元,用于根据所述上传文件总长度确定所述上传文件未上传完毕;\n[0048] 所述批量接收单元在确定所述上传文件未上传完毕还用于接收所述客户端在确认当前网络连接正常、确定第二次批量上传的第二数据包数量和第二数据包大小之后按照所述第二数据包大小上传的所述第二数据包数量的数据包,直至对所述上传文件总长度对应的文件接收完毕;\n[0049] 所述存储单元,用于存储所述接收到的文件,并将该文件的存储地址、文件标识符记录在索引文件中;以及,\n[0050] 所述客户端还包括下载请求单元和批量下载单元;\n[0051] 所述下载请求单元,用于向服务器发送下载请求,所述下载请求中包括文件标识符、下载文件总长度、每次批量下载的下载数据包数量以及下载数据包大小;\n[0052] 所述批量下载单元,用于接收到服务器对所述下载请求的应答后,在第一次批量下载中,按照所述下载数据包数量和下载数据包大小从服务器批量下载数据包;当确认所述第一次批量下载成功后,按照所述下载数据包数量和下载数据包大小执行第二次批量下载,直至将所述下载文件总长度对应的文件从服务器下载完毕;\n[0053] 所述服务器还包括下载请求接收单元、下载应答单元、下载文件查找单元和批量发送单元;\n[0054] 所述下载请求接收单元,用于接收客户端发送的下载请求,所述下载请求中包括文件标识符、下载文件总长度、每次批量下载的下载数据包数量以及下载数据包大小;\n[0055] 所述下载文件查找单元,用于根据文件标识符从索引文件中获取请求下载的文件的存储地址,根据该存储地址查找到需要下载的文件;\n[0056] 所述批量发送单元,用于\n[0057] 执行第一次批量下载,按照所述下载数据包数量和下载数据包大小将需要下载的文件的数据包批量下载至客户端;\n[0058] 确认网络连接正常后,按照所述下载数据包数量和下载数据包大小执行第二次批量下载,并将第二次批量下载数据发送给客户端,直至将所述下载文件总长度对应的文件全部下载至客户端。\n附图说明\n[0059] 图1是本发明一个实施例提供的一种数据传输方法的流程图;\n[0060] 图2是本发明一个实施例提供的一种数据传输方法的上传操作示意图;\n[0061] 图3是本发明又一个实施例提供的一种数据传输方法的下载操作示意图;\n[0062] 图4是本发明又一个实施例提供的一种数据数据传输方法流程图;\n[0063] 图5是本发明又一个实施例提供的一种数据数据传输方法示意图;\n[0064] 图6是本发明又一个实施例提供的一种数据传输系统的框图。\n具体实施方式\n[0065] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。\n[0066] 本发明的技术构思是通过批量发送数据的方式提高收发数据的速度。通过客户端和服务器之间的信息交互实现断点续传,通过落地记录权限来实现下载权限验证以及对文件以日期标识,然后以文件夹为单位统一管理文件。本发明不涉及具体的业务逻辑,可以无需关注具体上层业务,而对业务提出了一种数据传输基本方案;本方案的传输限定在文件需要在服务器完全落地后中转的情况。\n[0067] 图1是本发明一个实施例提供的一种数据传输方法的流程图;参见图1,该数据传输方法包括:\n[0068] 步骤S100:客户端向服务器发送上传请求,上传请求中包括上传文件总长度,以使服务器根据长传文件总长度判断文件是否上传完毕。\n[0069] 进一步地,该上传请求中还包括文件标识符,以使得服务器端存储接收到的文件,并将该文件的存储地址、文件标识符记录在索引文件中。\n[0070] 步骤S110:客户端确定第一次批量上传的第一数据包数量和第一数据包大小。\n[0071] 步骤S120:客户端对上传文件进行拆包,并按照第一数据包大小,将第一数据包数量的数据包上传至服务器;\n[0072] 客户端确认当前网络连接正常后,确定第二次批量上传的第二数据包数量和第二数据包大小,按照第二数据包大小,将第二数据包数量的数据包上传至服务器,直至将上传文件总长度对应的文件上传完毕。\n[0073] 服务器接收到上传数据后,若根据上传文件总长度确定文件上传完毕,则关闭传输通道。\n[0074] 需要注意的是,批量上传是指多个数据包依次顺序发送,每个包的发送不需要等服务器的应答之后再发。\n[0075] 可以理解,本方法步骤S110中的第一数据包数量和第一数据包大小和S120中的第二数据包数量和第二数据包大小可以相等或者不等。当该两次传输的数据包数量和数据包大小相等时,按照同样的数据包数量和数据包大小进行上传操作;每次上传时,客户端需要根据各自硬件的缓冲区大小和网络的情况,制定每次批量发送的数据包数量和数据包大小,当该两次上传时客户端的各自硬件的缓冲大小以及网络情况不同时,客户端确定的该两次上传的数据包数量和数据包大小就会有所不同。\n[0076] 在本发明的一个实施例中,步骤S120中确认网络连接正常包括:\n[0077] 客户端向服务器发送网络连接验证请求;接收到服务器根据网络连接验证请求返回的网络畅通应答时,确认第一次批量上传成功。\n[0078] 具体地,在上传文件时,客户端是批量上传数据包的,为了防止频繁交互客户端缓冲区压力过大以及确认服务器是否收到之前传输的数据包,客户端需要验证第一次批量上传的数据是否上传成功。由于本发明实施例是基于TCP协议可靠数据传输的,因此,只需要验证网络是否通畅即可证明服务器是否已经收到客户端之前发送的数据。具体的验证方式为:客户端向服务器发送一个用于验证网络是否连接畅通的网络连接验证请求,服务器收到该请求后,进行判断,当网络畅通时,则向客户端返回一个网络畅通的应答。客户端收到该网络畅通应答时,确认第一次批量上传成功。\n[0079] 步骤S120中当确认网络连接正常后,客户端接着确定第二次批量上传的第二数据包数量和第二数据包大小,按照第二数据包大小,将第二数据包数量的数据包上传至服务器,直至将上传文件总长度对应的文件上传完毕。客户端将上传文件总长度对应的文件上传完毕后,向服务器发送验证网络连接请求,等待服务器返回网络畅通应答,收到该应答后,结束上传操作,客户端和服务器各自关闭输入输出通道,上传结束。\n[0080] 客户端上传文件时,无须每个包传完都进行一次确认而是在一次性的批量传输完客户端确定的数据包后,由客户端发起一次确认,服务器应答。这样就减少延时的发生,提高传输速度。\n[0081] 其中,步骤S100中客户端发送的上传请求中还包括文件可下载用户列表,以使服务器利用该文件可下载用户列表验证请求下载文件的用户的权限;和/或,[0082] 上传请求中还包括文件是否可删除的指示信息,以使服务器利用该文件是否可删除的指示信息对接收到的上传文件进行删除。\n[0083] 现有方案中凡是上传到服务器的文件,只要拿到文件标识符,所有用户都能下载,这使得文件下载并不安全,针对这种问题,本实施例中,步骤S100中客户端向服务器发送的上传请求中,还包括了文件可下载用户列表,其中,文件可下载用户列表即是前面提到的落地记录权限。这项信息的作用是使服务器利用该文件可下载用户列表验证请求下载文件的用户的权限,这样做主要是为了保护文件下载安全。\n[0084] 具体地,客户端在发送的上传请求中提交上来文件可下载用户列表。该文件可下载用户列表可以进行更新,更新就是用户多次在上传请求中提交上来文件可下载用户列表;服务器需要对已经记录的列表和每次新提交上来的列表取并集,将原来已记录列表中没有的人追加到服务器的保存的文件可下载用户列表中。\n[0085] 可选地,客户端发送到服务器的上传请求中还包括文件是否可删除的指示信息,客户端对自身上传的文件提前设定好该文件是否可删除并记录到上传请求中发送给服务器,以便服务器在对文件进行管理时,根据文件是否可以删除的指示信息采取不同的管理措施,方便对文件进行管理。其中,当指示信息指示文件是不可删除的时,服务器不进行操作。\n[0086] 针对现有技术方案中的如果客户端在传输过程中发生了中断,比如突然断网,则客户端需要重新上传数据,不能实现断点续传,容易造成资源的浪费的问题。在本发明的一个实施例中还提供一种断点续传方法,在将上传文件总长度对应的文件上传完毕之前,上述方法还包括:\n[0087] 若上传操作中断,客户端再次发起对上传中断的文件的上传操作时,客户端向服务器发送续传请求,该续传请求中包括文件标识符;\n[0088] 客户端接收服务器返回的续传请求响应,并根据续传请求响应中的已上传数据包的偏移量,从偏移量对应的上传中断点开始批量上传文件直至上传文件总长度对应的文件上传完毕。\n[0089] 由于客户端在传输过程中可能会发生突发状况,比如突然断网,客户端若能接着尚未传完的数据继续传输将提高资源利用,具有较大意义。在本实施例中,客户端在已上传的数据包对应的文件长度小于上传文件总长度的情况下,中断文件的上传操作的,即客户端遇到了突发状况,发生了中断。那么服务器端将记录上传中断点对应的已上传数据包的偏移量;该上传中断点即上传文件的中断位置。\n[0090] 当突发状况消除后,客户端再次发起对上传中断的文件的上传操作时,客户端接着向服务器发送一个续传请求,该续传请求中包括文件标识符;文件标识符是方便服务器查找上次中断的文件,服务器收到该续传请求后,建立传输通道并将已上传数据包的偏移量记录到向客户端返回的续传请求响应中,客户端将从偏移量对应的上传中断点开始批量上传文件直至上传文件总长度对应的文件上传完毕。通过这种方式,客户端就实现了断点续传的功能。\n[0091] 图2是本发明又一个实施例提供的一种数据传输方法的上传操作示意图。参见图\n2,本实施例中,客户端在上传文件时,具体的流程包括:\n[0092] S200:向服务器发送上传请求,所述上传请求中包括上传文件总长度;\n[0093] S201:等待服务器对该上传请求的应答,并接收服务器发送的应答;\n[0094] S202:确定第一次批量上传的第一数据包数量和第一数据包大小之后,按照第一数据包大小上传的第一数据包数量的数据包;\n[0095] S203:当第一批数据包数量按照第一数据包大小向服务器发送完毕后,服务器接收客户端向发送验证网络连接的验证请求;\n[0096] S204:服务器接收到验证网络连接的验证请求后,进行判断,当网络畅通时,则向客户端发送网络畅通的应答,客户端接收服务器的网络畅通应答;\n[0097] S205:收到服务器返回的网络畅通的应答后,客户端确定第一次批量上传的第一数据包数量和第一数据包大小并发送至服务器;如此循环,直至将上传请求中上传文件总长度对应的文件上传完毕,客户端和服务器各自关闭输入输出通道。\n[0098] 参见图2,图2中虚框部分表示了客户端断点续传的具体步骤。在断点续传时,服务器会记录上传中断点对应的已上传数据包的偏移量;\n[0099] 步骤S210:客户端再次发起对上传中断的文件的上传操作时,向服务器发送续传请求。\n[0100] 步骤S211:客户端接收服务器的对上述续传请求的应答;服务器将已上传数据包的偏移量携带在续传请求响应中发送给客户端,以使客户端从偏移量对应的上传中断点开始批量上传所述文件。\n[0101] 步骤S212:收到服务器返回的应答后,客户端确定批量上传的数据包数量和数据包大小并按照确定好的数据包大小将数据包数量对应的数据包上传至服务器,直至将未上传的文件全部上传完毕。\n[0102] 图3是本发明一个实施例提供的一种数据传输方法的下载示意图。参见图3,在本实施例中,服务器端会存储接收到的文件,并将该文件的存储地址、文件标识符记录在索引文件中。客户端下载文件时,具体包括:\n[0103] 步骤S300:客户端向服务器发送下载请求,下载请求中包括文件标识符、下载文件总长度、每次批量下载的下载数据包数量以及下载数据包大小;然后客户端就等待接收服务器的反馈。\n[0104] 步骤S301:服务器接收到下载请求后,对该请求进行判断并向客户端发送一个应答。服务器根据文件标识符从索引文件中获取请求下载的文件的存储地址,根据该存储地址查找到需要下载的文件。\n[0105] 步骤S302:客户端在接收到服务器对下载请求的应答后,执行第一次批量下载,按照预先指定的下载数据包数量和下载数据包大小从服务器批量下载数据包。\n[0106] 步骤S303:客户端在接收到一批数据包后,向服务器发送一个网络连接验证请求;\n[0107] 步骤S304:服务器收到客户端发送的网络连接验证请求后,对当前的网络情况进行判断,当网络畅通时,则向客户端返回一个网络畅通应答;客户端收到服务器返回的网络畅通的应答后,确认网络连接正常;\n[0108] 步骤S305:当客户端确认网络连接正常后,按照下载数据包数量和下载数据包大小执行第二次批量下载,直至将下载文件总长度对应的文件从服务器下载完毕。\n[0109] 需要注意的是,下载操作时,为了防止客户端因大量接收服务器发送的数据而导致缓冲区塞满,而造成延时接收其他消息以及确认客户端已经接收到了数据。客户端相应地也需要向服务器发送一个验证网络连接的请求,确认第一次批量下载是否成功。当服务器收到验证网络连接的请求时,进行判断,网络畅通时,返回网络畅通的应答。客户端收到该网络畅通应答时,确认网络连接正常。\n[0110] 本实施例还提供了中断下载后继续下载文件的方法,在本实施例中,客户端在已下载的数据包对应的文件长度小于下载文件总长度的情况下,中断文件的下载操作的,记录下载中断点对应的已下载数据包的下载偏移量;其中,下载中断点是指客户端下载文件的中断位置。\n[0111] 当再次发起对下载中断的文件的下载操作时,向服务器发送继续下载请求,继续下载请求中包括文件标识符、下载偏移量、每次批量下载的下载数据包数量以及下载数据包大小;接收服务器从下载偏移量对应的下载中断点开始按照每次批量下载的下载数据包数量以及下载数据包大小发送的批量下载数据,直至下载文件总长度对应的文件下载完毕。\n[0112] 参见图3,图3的虚框部分示出了客户端中断下载后继续下载的步骤。步骤S310:当客户端再次发起对下载中断的文件的下载操作时,向服务器发送继续下载请求,继续下载请求中包括文件标识符、下载偏移量、每次批量下载的下载数据包数量以及下载数据包大小;\n[0113] 步骤S311:根据上传文件总长度确定上传文件未上传完毕;服务器收到客户端发送的继续下载请求后,根据下载请求中的信息找到中断下载之前传输的文件,并向客户端发送应答,客户端接收服务器的应答;\n[0114] 步骤S312:客户端接收到服务器的应答后,从下载偏移量对应的下载中断点开始,按照下载数据包数量以及下载数据包大小,批量下载文件直至下载文件总长度对应的文件下载完毕。\n[0115] 本发明又一个实施例提供了一种数据传输方法。图4是本发明又一个实施例提供的一种数据数据传输方法的流程图,参见图4,具体地该方法包括:\n[0116] 步骤S400:服务器接收客户端的上传请求,上传请求中包括上传文件总长度。\n[0117] 步骤S410:服务器向客户端返回对上传请求的应答并接收客户端在确定第一次批量上传的第一数据包数量和第一数据包大小之后,按照所述第一数据包大小上传的第一数据包数量的数据包。\n[0118] 步骤S420:在第一次批量上传中,服务器接收客户端按照第一数据包大小上传的第一数据包数量的数据包;当确认第一次批量上传成功后,在第二次批量上传中,接收客户端按照所述第二数据包大小上传的第二数据包数量的数据包,直至对上传文件总长度对应的文件接收完毕。\n[0119] 步骤S430:服务器存储接收到的文件,并将该文件的存储地址、文件标识符记录在索引文件中。\n[0120] 服务器将接收到的文件的存储地址、文件标识符记录在索引文件中并写入磁盘,同时在内存中保存一份索引文件,这样做一方面可以为以后的文件下载做准备,下载过程,所有下载用户都引用这个唯一的步骤S430中的索引文件,保证下载的数据统一;另一方面也节省了读写磁盘花费的时间。\n[0121] 图5是本发明又一个实施例提供的数据传输方法的示意图,参见图5,上述方法还包括:\n[0122] 步骤S500:服务器接收客户端发送的下载请求,下载请求中包括文件标识符、下载文件总长度、每次批量下载的下载数据包数量以及下载数据包大小;\n[0123] 步骤S501:服务器收到该下载请求后进行判断并对该请求做出应答并向客户端返回对下载请求的应答;\n[0124] 步骤S502:服务器根据文件标识符从索引文件中获取请求下载的文件的存储地址,根据该存储地址查找到需要下载的文件;\n[0125] 步骤S504:服务器在第一次批量下载中,按照下载数据包数量和下载数据包大小将需要下载的文件的数据包批量下载至客户端;\n[0126] 步骤S505:客户端在收到第一次批量下载的数据包后,向服务器端发送一个验证网络连接请求;\n[0127] 步骤S506:服务器端对该验证请求进行应答并将该应答发送给客户端;\n[0128] 步骤S507:当服务器确认网络连接正常后,按照下载数据包数量和下载数据包大小执行第二次批量下载,直至将下载文件总长度对应的文件全部下载至客户端。\n[0129] 在下载操作时,客户端向服务器发起请求,在请求中描述清楚自己请求的具体内容,包括文件标识符,文件总长度,客户端根据自身的网络情况和缓冲区的情况,指定服务器下推的每个包的大小和每批次发送的数据包数量。\n[0130] 其中,步骤S500中客户端发送的下载请求中还包括请求下载用户的用户信息,在向客户端返回对下载请求的应答之前,该方法还包括:\n[0131] 步骤S503:服务器将用户信息与记录的文件可下载用户列表进行比对,当用户信息在文件可下载用户列表中时,向客户端返回对下载请求的应答,当用户信息不在所述文件可下载用户列表中时,不向客户端返回对下载请求的应答,拒绝用户下载文件。\n[0132] 具体地,服务器首先根据客户端之前提交的文件可下载用户列表验证发送下载文件请求的用户是否有权限下载,如果没有下载权限不向客户端返回对下载请求的应答,拒绝用户下载文件。如果有权限下载,则需要进一步验证请求下载的文件总长度与服务器保存的文件的总长度是否相同。如果相同,则根据客户端上传的其已有偏移量,每包大小和每批包数,从偏移量开始给客户端下推一次。如果不相同,则直接告知用户没有此文件。\n[0133] 针对现有技术方案中,过期文件管理薄弱的问题,本实施例还提供了一种过期文件管理方法,其中,客户端的上传请求中还包括文件是否可删除的指示信息,当文件是否可删除的指示信息指示文件是不可删除的,服务器则将接收到的文件放入服务器的第一类型文件夹并固定保存;\n[0134] 当文件是否可删除的指示信息指示文件是可删除的,服务器则将接收到的文件按照接收日期放入服务器的第二类型文件夹中,以及,定时判断第二类型文件夹对应的接收日期距离当前的时间是否超过设定的保存期限,若是,遍历该第二类型文件夹中所有文件的文件标识符,删除该文件标识符对应的索引文件和接收到的文件,若否,保留该第二类型的文件夹。\n[0135] 可选地,客户端在发送的上传请求中还包括文件是否可删除的指示信息,利用该指示信息,服务器将不同的文件放入不同的文件夹。即将接收到的指示信息为文件不可删除的文件放入服务器的第一类型文件夹并固定保存。将接收到的指示信息为文件可删除的文件按照接收日期放入以接收日期的不同而建立的第二类型文件夹中。服务器预先设定一个保存期限,定时判断第二类型文件夹对应的接收日期距离当前的时间是否超过设定的保存期限。若是,遍历该第二类型文件夹中所有文件的文件标识符,删除该文件标识符对应的索引文件和接收到的文件,若否,保留该第二类型的文件夹,对其不做删除处理。采用这种以日期为单位分管数据的方法,能快速定位过期文件,对过期文件进行管理。\n[0136] 本发明又一个实施例提供了一种数据传输系统,图6是本发明一个实施例的一种数据传输系统的框图,参见图6,该系统包括:客户端600和服务器610;\n[0137] 客户端600包括:上传请求单元601、接收确认单元602和批量上传单元603;\n[0138] 上传请求单元601,用于向服务器发送上传请求,所述上传请求中包括上传文件总长度,以使所述服务器根据所述长传文件总长度判断文件是否上传完毕;\n[0139] 接收确认单元602,用于确定第一次批量上传的第一数据包数量和第一数据包大小;\n[0140] 批量上传单元603,用于对所述上传文件进行拆包,并按照所述第一数据包大小,将所述第一数据包数量的数据包上传至所述服务器;确认当前网络连接正常后,确定第二次批量上传的第二数据包数量和第二数据包大小,按照所述第二数据包大小,将所述第二数据包数量的数据包上传至所述服务器,直至将所述上传文件总长度对应的文件上传完毕;\n[0141] 服务器610包括上传请求接收单元611、确定单元612、批量接收单元613和存储单元614;\n[0142] 上传请求接收单元611,用于接收客户端的上传请求,上传请求中包括上传文件总长度;\n[0143] 批量接收单元613,用于接收客户端在确定第一次批量上传的第一数据包数量和第一数据包大小之后,按照所述第一数据包大小上传的第一数据包数量的数据包;\n[0144] 所述确定单元612,用于根据所述上传文件总长度确定所述上传文件未上传完毕;\n[0145] 所述批量接收单元613在确定所述上传文件未上传完毕之后,还用于接收所述客户端在确认当前网络连接正常、确定第二次批量上传的第二数据包数量和第二数据包大小之后按照所述第二数据包大小上传的所述第二数据包数量的数据包,直至对所述上传文件总长度对应的文件接收完毕;\n[0146] 所述上传请求中还包括文件标识符,存储单元614,用于存储接收到的文件,并将该文件的存储地址、文件标识符记录在索引文件中;\n[0147] 客户端还包括下载请求单元604和批量下载单元605;\n[0148] 下载请求单元604,用于向服务器发送下载请求,下载请求中包括文件标识符、下载文件总长度、每次批量下载的下载数据包数量以及下载数据包大小;\n[0149] 批量下载单元605,用于接收到服务器对下载请求的应答后,在第一次批量下载中,按照下载数据包数量和下载数据包大小从服务器批量下载数据包;当确认网络连接正常后,按照下载数据包数量和下载数据包大小执行第二次批量下载,直至将下载文件总长度对应的文件从服务器下载完毕。\n[0150] 服务器还包括下载请求接收单元615、下载文件查找单元616和服务器批量发送单元617;\n[0151] 下载请求接收单元615,用于接收客户端发送的下载请求,下载请求中包括文件标识符、下载文件总长度、每次批量下载的下载数据包数量以及下载数据包大小;\n[0152] 下载文件查找单元616,用于根据文件标识符从索引文件中获取请求下载的文件的存储地址,根据该存储地址查找到需要下载的文件;\n[0153] 批量发送单元617,用于执行第一次批量下载,按照所述下载数据包数量和下载数据包大小将需要下载的文件的数据包批量下载至客户端;确认网络连接正常后,按照所述下载数据包数量和下载数据包大小执行第二次批量下载,并将第二次批量下载数据发送给客户端,直至将所述下载文件总长度对应的文件全部下载至客户端。。\n[0154] 其中,客户端600还包括:验证单元;该验证单元用于向服务器发送网络连接验证请求;\n[0155] 接收到服务器根据网络连接验证请求返回的网络畅通应答时,确认第一次批量上传成功。\n[0156] 其中,客户端上传请求单元601向服务器发送的上传请求中还包括:文件可下载用户列表,以使服务器利用该文件可下载用户列表验证请求下载文件的用户的权限;和/或,[0157] 文件是否可删除的指示信息,以使服务器利用该文件是否可删除的指示信息对接收到的上传文件进行删除。\n[0158] 其中,客户端600还包括:断点续传单元;该断点续传单元用于:在已上传的数据包对应的文件长度小于上传文件总长度的情况下,客户端中断文件的上传操作的,记录上传中断点对应的已上传数据包的偏移量;\n[0159] 当再次发起对上传中断的文件的上传操作时,向服务器发送续传请求,续传请求中包括文件标识符;\n[0160] 从偏移量对应的上传中断点开始批量上传文件直至上传文件总长度对应的文件上传完毕。\n[0161] 或者,\n[0162] 在已下载的数据包对应的文件长度小于下载文件总长度的情况下,中断文件的下载操作的,记录下载中断点对应的已下载数据包的下载偏移量;\n[0163] 当再次发起对下载中断的文件的下载操作时,向服务器发送继续下载请求,继续下载请求中包括文件标识符、下载偏移量、每次批量下载的下载数据包数量以及下载数据包大小;\n[0164] 从下载偏移量对应的下载中断点开始,按照下载数据包数量以及下载数据包大小,批量下载文件直至下载文件总长度对应的文件下载完毕。\n[0165] 其中,服务器610还包括:下载权限验证单元;接收到的客户端的下载请求中还包括请求下载用户的用户信息,在向客户端返回对下载请求的应答之前,该下载权限验证单元用于:\n[0166] 将用户信息与记录的文件可下载用户列表进行比对,当用户信息在文件可下载用户列表中时,向客户端返回对下载请求的应答,当用户信息不在文件可下载用户列表中时,不向客户端返回对下载请求的应答,拒绝用户下载文件。\n[0167] 其中,服务器610还包括:文件管理单元;该文件管理单元用于,根据客户端上传请求中包括的文件是否可删除的指示信息;当文件是否可删除的指示信息指示文件是不可删除的,则将接收到的文件放入服务器的第一类型文件夹并固定保存;当文件是否可删除的指示信息指示文件是可删除的,则将接收到的文件按照接收日期放入服务器的第二类型文件夹中,以及,定时判断第二类型文件夹对应的接收日期距离当前的时间是否超过设定的保存期限,若是,遍历该第二类型文件夹中所有文件的文件标识符,删除该文件标识符对应的索引文件和接收到的文件,若否,保留该第二类型的文件夹。\n[0168] 本发明系统实施例中各单元的具体工作方式可以参见本发明方法实施例中的相关内容,在此不再赘述。\n[0169] 综上所述,本发明的技术方案首先在数据传输时,每个包无需等待响应,可批量的发送数据,并且是在一次性发完客户端指定的数据包数后,确认一次,确认成功后,再发下一次。该方案无须在每一个包传完都确认一次的方式能够实现批量数据传输,减少网络延时的发生,提高了数据传输速度,有效提高网络负载能力。其次,本发明还具有断点续传的功能,在客户端上传或者下载数据时遇到突发状况而中断的情况下,记录客户端上传已有偏移量或者下载偏移量,当突发状况消除后续传或继续下载时,无须重复上传已上传的数据包和重复下载已下载的数据包,节约了网络的资源。再次,本方案还有严格的下载安全管理功能,服务器保存文件可下载用户列表,收到下载请求时进行权限验证,保护上传到服务器的文件的下载安全。最后,本方案采用以日期为单位对文件进行保存的方式,这样能够实现快速定位过期文件,对过期文件进行有效管理。\n[0170] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
法律信息
- 2020-09-11
专利权人的姓名或者名称、地址的变更
专利权人由北京新媒传信科技有限公司变更为北京新媒传信科技有限公司
地址由100089 北京市海淀区万泉庄路28号万柳新贵大厦A座6层602室变更为100080 北京市海淀区海淀大街34号8层810室
- 2019-02-15
- 2015-07-29
实质审查的生效
IPC(主分类): H04L 29/08
专利申请号: 201310753018.4
申请日: 2013.12.31
- 2015-07-01
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-05-25
|
2011-02-10
| | |
2
| |
2007-11-07
|
2007-03-30
| | |
3
| |
2013-08-28
|
2013-05-03
| | |
4
| |
2011-11-09
|
2010-05-06
| | |
5
| |
2009-09-16
|
2009-04-13
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |