一种HTTP服务器断点续传上传文件存储的实现方法技术

技术编号:23771887 阅读:112 留言:0更新日期:2020-04-12 00:31
本发明专利技术公开了一种HTTP服务器断点续传上传文件存储的实现方法,具体包括如下步骤:S1、服务器接收到上传文件的分片后,按照内存页的倍数将分片分割成更小的数据块,并通过位图映射文件,标记各个数据块完整接收存储;S2、当接收的数据块已经连续且超过设定的数量时,计算出该连续数据块集的MD5值;S3、当文件所有分片都接收存储后,经客户端校验这些MD5值后,将这些存储片段合并为完整的一个文件。本发明专利技术将上传的文件分片、按照规则、分割成更小的数据块,并通过位图映射文件,标记接收存储,通过特定算法实现解决了文件重复覆盖问题,从而使得诸如HTTP协议的断点续传上传可以得到实现。

An implementation method of HTTP server breakpoint continuous upload file storage

【技术实现步骤摘要】
一种HTTP服务器断点续传上传文件存储的实现方法
本专利技术涉及计算机
,具体涉及一种HTTP服务器断点续传上传文件存储的实现方法。
技术介绍
HTTP断点续传是指基于HTTP协议,在上传/下载时,将一个文件划分为几个部分,每一个部分采用一个线程进行上传/下载,如果碰到故障中断,可以从已经上传/下载的部分开始继续上传/下载未完成的部分,而不必从头开始上传/下载。HTTP/1.1开始支持断点续传下载,通过HTTP协议的GET方法,使用Range和Content-Range实体头实现客户端与服务端的交换获取指定的文件片段。HTTP协议的PUT方法所对应的URI是要创建或更新的资源本身。比如:PUThttp://www.example.com/file的语义是创建或更新file。对同一URI进行多次PUT的副作用和一次PUT是相同的;因此,PUT方法具有幂等性。PUT比较正确的定义是Replace(CreateorUpdate),也就是如果存在就替换,不存在就创建。但目前很多HTTP服务器,考虑到文件重叠覆盖可能会导致资本文档来自技高网...

【技术保护点】
1.一种HTTP服务器断点续传上传文件存储的实现方法,其特征在于,具体包括如下步骤:/nS1、服务器接收到上传文件的分片后,按照内存页的倍数将分片分割成更小的数据块,并通过位图映射文件,标记各个数据块完整接收存储;/nS2、当接收的数据块已经连续且超过设定的数量时,计算出该连续数据块集的MD5值;/nS3、当文件所有分片都接收存储后,经客户端校验这些MD5值后,将这些存储片段合并为完整的一个文件;/n步骤S1的具体过程如下:/nS1.1、服务器依据上传文件总长度L,按照预设倍数因子F以及内存页大小PS,建立位图映射文件FMAP;所述位图映射文件的每2比特位映射为1个数据块,其中,二进制00表示...

【技术特征摘要】
1.一种HTTP服务器断点续传上传文件存储的实现方法,其特征在于,具体包括如下步骤:
S1、服务器接收到上传文件的分片后,按照内存页的倍数将分片分割成更小的数据块,并通过位图映射文件,标记各个数据块完整接收存储;
S2、当接收的数据块已经连续且超过设定的数量时,计算出该连续数据块集的MD5值;
S3、当文件所有分片都接收存储后,经客户端校验这些MD5值后,将这些存储片段合并为完整的一个文件;
步骤S1的具体过程如下:
S1.1、服务器依据上传文件总长度L,按照预设倍数因子F以及内存页大小PS,建立位图映射文件FMAP;所述位图映射文件的每2比特位映射为1个数据块,其中,二进制00表示空白、没有数据块存入,二进制11表示一个完整的数据块,二进制01或10表示一个数据块不完整、数据长度小于映射数据块长度,01表示已存储的数据块的尾部偏移对齐一个完整大小的数据块起始位置,10表示已存储的数据块开始于一个完整大小的数据块末尾位置;一个完整的数据块大小为BS=F*PS,位图映射文件大小等于((L+BS-1)/F*BS+3)/4;
S1.2、服务器接收一个分片SP、该分片SP相对完整文件起始位置的偏移量SO以及该分片SP的长度SL;如果该分片的长度SL小于BS,转步骤S1.3,否则转步骤S1.4;
S1.3、数据块合并处理:
S1.3.1、根据该分片SP的偏移量SO,计算出偏移区间:
偏移区间=[S0,取整((SO+PS-1)/PS)*PS];
S1.3.2、检查是否存在步骤S1.3.1计算得到的偏移区间范围内的数据块:如果不存在或者该分片SP与已存在分片不重叠,则保存该分片SP及其偏移量SO;如果该分片SP与已存在分片有重叠,则比较重叠部分,如果重叠部分不相同,做差异数据处理;
S1.3.3、将分片SP与已存在分片合并,如果合并后的偏移量是BS的整数倍且且合并后的数据块长度等于BS,则将位图映射文件FMAP对应的比特位置设置为11,表示对应数据块已经完整存储;结束处理;
S1.4、将分片SP的偏移量SO转换为偏移量集合SO1,SO2,SO3...SOn-1,SOn,然后计算出对应的数据大小L1,L2,L3,...,Ln-1,Ln,并根据数据大小L1,L2,L3,...,Ln-1,Ln切分出数据块DB1,DB2,DB3,...,DBn-1,DBn进行存储;其中:
SO1等于SO;
如果S0不是BS的整数倍,则调整L1,使SO2是BS的整数倍;
SO2=S01+L1,SO3=SO2+L2,…,SOn=SOn-1+Ln-1;
L2,L3,...,Ln-1的大小相同,均等于BS;...

【专利技术属性】
技术研发人员:孟令波
申请(专利权)人:广州辰河质检技术有限公司
类型:发明
国别省市:广东;44

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

1