发明名称 一种基于分块及元信息的断点续传的方法
摘要 一种基于分块及元信息的断点续传的方法,包括数据存储方法、断点上传方法和断点下载方法;数据存储方法,数据保存在存储服务器时,有多个版本数据,但其中只能有一个完备版本数据,各个版本数据拆分为多个数据块:按照指定数据块大小,将一个数据拆分为多个数据块,最后一个数据块大小为实际数据块大小;为各个数据块生成对应的数据块元信息,元信息包含数据块添加时间、数据块编号、数据块大小、数字签名、KEY;断点上传方法:用户调用客户端的上传接口,输入上传参数;2)客户端向服务器端发起读此ID的此版本号数据的最后一个数据块元信息的请求;3)服务器端接收到客户端的请求后,取此ID的此版本号数据的最后一个数据块元信息。
申请公布号 CN105025106B 申请公布日期 2016.03.30
申请号 CN201510449797.8 申请日期 2015.07.28
申请人 焦点科技股份有限公司 发明人 梁峰;许诺
分类号 H04L29/08(2006.01)I 主分类号 H04L29/08(2006.01)I
代理机构 南京瑞弘专利商标事务所(普通合伙) 32249 代理人 陈建和
主权项 一种基于分块及元信息的断点续传的方法,其特征在于,包括数据存储方法、断点上传方法和断点下载方法;数据存储方法,一个数据保存在存储服务器时,能够有多个版本数据,但其中只能有一个完备版本数据——即数据完整的数据,各个版本数据拆分为多个数据块,具体数据分块方法为:步骤一、按照指定数据块大小,将一个数据拆分为多个数据块,除最后一个数据块外,其余数据块按顺序编号、数据块大小为指定数据块大小,最后一个数据块大小为实际数据块大小;步骤二、为各个数据块生成对应的数据块元信息,元信息包含数据块添加时间、数据块编号、数据块大小、数字签名,还包含KEY以及数据块的文件类型、图片大小标识参数;KEY是指含数据ID、版本号、数据完备标识符的一个字符串;断点上传方法,包括以下步骤:步骤一、用户调用客户端的上传接口,输入上传参数:输入流、数据ID、版本号、数字签名;步骤二、客户端向服务器端发起读此ID的此版本号数据的最后一个数据块元信息的请求;步骤三、服务器端接收到客户端的请求后,取此ID的此版本号数据的最后一个数据块元信息;如不存在即表示是一次新上传任务,则返回新上传消息给客户端;如存在最后一个数据块元信息即表示是一次续传任务,则读取元信息中KEY的数据完备标识符;如为完备状态即表示数据已上传完整,则返回已完成上传消息到客户端;如KEY中数据完备标识符为不完备状态即表示数据未上传完整,再检验此元信息中所记录的数字签名和输入的数字签名是否一致,如不一致,则返回错误消息到客户端,如一致,则返回此ID的此版本号数据的最后一个数据块元信息到客户端;步骤四、客户端得到服务器端返回的消息,如为新上传消息,则从第一个数据块开始按指定数据块大小逐块上传数据;如为已完成上传消息,则提示用户“已完成上传”并结束此上传进程;如为错误消息,则提示用户“数字签名不一致”并结束此上传进程;如此ID的此版本号数据的最后一个数据块元信息为不完备状态,则从最后一个数据块编号的下一个数据块开始按指定数据块大小逐块上传数据,服务器端接收完一个数据块后,为数据块生成对应的数据块元信息,元信息中KEY的数据完备标识符为不完备状态,再接收下一个数据块;若用户还未上传到最后一个数据块上传就中断了,则再重新调用上传接口进行下一次上传,进入步骤一,若用户上传到最后一个数据块,进入步骤五;步骤五、客户端标记最后一个数据块为结束块,并上传结束块;步骤六、服务器端接收完结束块后,为结束块生成数据块元信息,元信息中KEY的数据完备标识符为完备状态,删除在此版本号添加时间之前的所有数据,所述所有数据包括不完备版本数据和完备版本数据,保证只有一个完备版本数据,即完成断点上传;断点下载方法,具体包括以下步骤:步骤一、用户调用客户端的下载接口,在客户端输入下载参数:输出流、数据ID、完备数据版本号、下载起始位、下载结束位;步骤二、客户端向服务端发起读此数据ID的此版本号数据的各个数据块元信息的请<pb pnum="1" />求;步骤三、服务器端接收到客户端的请求后,读取此ID的此版本号数据的各个数据块元信息,如不存在,则返回错误消息给客户端,如存在则返回给客户端;步骤四、客户端得到服务器端返回的消息,如为错误消息,则提示用户“数据不存在”,结束下载进程;如为此ID的此版本号数据的各个数据块元信息,则计算下载的起始位置,具体为步骤1、客户端按数据块编号的由小到大顺序逐块读取对应数据块元信息;步骤2、用输入的下载起始位按数据块编号的由小到大顺序逐块减去数据块元信息中所记录的数据块编号的大小,直至差值小于或等于0;若差值小于0,则下载的起始位置为最后一个数据块编号得到的差值加最后减去的数据块元信息中所记录的数据块编号大小的字节位;若差值等于0,则下载的起始位置为最后减去的数据块元信息中所记录的数据块编号的下一个数据块的起始字节位;步骤五、客户端从服务器端的下载起始位置开始逐块下载数据到输出流,直到指定的下载结束位即最后一个数据块为止,即完成断点下载,若未下载到指定的下载结束位则中断下载了,输出流中记录下载结束位作为下一次下载的下载起始位。
地址 210003 江苏省南京市高新技术产业开发区星火路软件大厦A座8-12F