[发明专利]一种大文件下载传输方法在审
申请号: | 202010411003.X | 申请日: | 2020-05-15 |
公开(公告)号: | CN111614744A | 公开(公告)日: | 2020-09-01 |
发明(设计)人: | 许燕兵 | 申请(专利权)人: | 武汉麦子科技有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 武汉宇晨专利事务所 42001 | 代理人: | 王敏锋 |
地址: | 430070 湖北省武汉市东湖高新技*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文件 下载 传输 方法 | ||
本发明公布了一种大文件下载传输方法,其核心思想是:将大文件分割成小文件,复制到内存缓存,播放终端每次只需要读取每个小文件,对系统资源影响小;将小文件进行缓存,提高性能;对每个小文件设置缓存时间,缓存时间后从内存中删除,保证在同一时间段只有一部分文件被载入内存,有效防止内存被占满或文件过多过大不能载入内存情况;分割下载便于实现断点传输,还增加了下载线程,提高下载速度。
技术领域
本发明涉及计算机领域,特别是涉及一种大文件下载传输方法。
背景技术
目前广告播放终端被广泛应用,广告播放终端需要重服务器下载播放文件,播放文件直接存储于磁盘上。终端下载文件时,服务器要不断的读取文件,进行磁盘IO操作。在I/O机制中,数据先从磁盘复制到内核空间的缓冲区,然后从内核空间缓冲区复制到应用程序的地址空间。播放终端读取播放文件时,检查内核的缓冲区有没有需要的数据,如果已经缓存了,那么就直接从缓存区中返回;否则从磁盘中读取,然后缓存在播放终端的缓存区中。
现有技术存在以下弊端:多个播放终端下载播放文件时,每个播放终端每次都是从文件的不同位置请求数据,造成服务端过多的磁盘IO操作,影响性能,过多占用服务器资源;过大的文件不能进行缓存,每次只能从磁盘读取,受磁盘读取速度的影响比较大;广告播放终端一般布置在电梯中,广告播放终端与服务器的通讯时常中断,较大的播放文件无法一次性上传至播放终端,断点传输必须保证上传传输位置的准确,否则后导致下载文件失败或不完整;反映下载进度需要额外发送请求。
发明内容
基于上述问题,本发明提供了一种大文件下载传输方法,用以提高播放终端读取服务器内播放文件的读写速度。
为解决上述问题,技术方案是:一种大文件下载传输方法,包括以下步骤,
步骤1.服务端将播放文件分割成N个子文件,子文件按从小到大顺序排列编号;
步骤2.服务端将N个子文件分别存储在磁盘;
步骤3.生成数据索引文件;
步骤4.播放终端向服务端发送读取请求时,服务端返回数据索引文件,播放终端读取数据索引文件,获得编号信息集、N个子文件的数量、每个子文件的大小信息,根据编号信息集和每个子文件的大小信息生成待请求集;
步骤5.播放终端从待请求集中选取第i~j号子文件形成请求集,向服务端发出请求;
步骤6.服务端将第i~j号子文件从磁盘中复制到内存的缓存区,并设置缓存时间;
步骤7.再将第i~j号子文件从内存的缓存区复制到发出请求集的播放终端;
步骤8.服务端读取已复制子文件的编号和大小信息,按已复制子文件的编号为索引条件,比较已复制子文件的大小信息是否与请求集中子文件的大小信息相同,若相同,则标记子文件为请求完成,若不同,则标记子文件为中断,统计请求完成的子文件的数目,和请求完成的子文件的编号和子文件大小信息形成已请求集;
步骤9.根据请求完成的子文件的数目的子文件数量与数据索引文件中子文件总数的比值,获得播放文件下载进度,根据已请求集与待请求集的补集,更新步骤4的待请求集;
步骤10.重复步骤4~9直至,步骤9得到的待请求集为空,将已复制的所有子文件合并。
优选地,若已请求集小于请求集,播放终端执行步骤9前,执行断点传输,
步骤11.从步骤8中统计所有中断的子文件的编号和子文件大小信息形成中断集;
步骤12.从中断集中选取所有子文件形成请求集,向服务端发出请求;
步骤13.将被请求的子文件从内存的缓存区复制到发出请求集的播放终端;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉麦子科技有限公司,未经武汉麦子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010411003.X/2.html,转载请声明来源钻瓜专利网。