CN111614744A - 一种大文件下载传输方法 - Google Patents

一种大文件下载传输方法 Download PDF

Info

Publication number
CN111614744A
CN111614744A CN202010411003.XA CN202010411003A CN111614744A CN 111614744 A CN111614744 A CN 111614744A CN 202010411003 A CN202010411003 A CN 202010411003A CN 111614744 A CN111614744 A CN 111614744A
Authority
CN
China
Prior art keywords
file
subfiles
requested
check code
files
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010411003.XA
Other languages
English (en)
Inventor
许燕兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Maizi Technology Co ltd
Original Assignee
Wuhan Maizi Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Maizi Technology Co ltd filed Critical Wuhan Maizi Technology Co ltd
Priority to CN202010411003.XA priority Critical patent/CN111614744A/zh
Publication of CN111614744A publication Critical patent/CN111614744A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公布了一种大文件下载传输方法,其核心思想是:将大文件分割成小文件,复制到内存缓存,播放终端每次只需要读取每个小文件,对系统资源影响小;将小文件进行缓存,提高性能;对每个小文件设置缓存时间,缓存时间后从内存中删除,保证在同一时间段只有一部分文件被载入内存,有效防止内存被占满或文件过多过大不能载入内存情况;分割下载便于实现断点传输,还增加了下载线程,提高下载速度。

Description

一种大文件下载传输方法
技术领域
本发明涉及计算机领域,特别是涉及一种大文件下载传输方法。
背景技术
目前广告播放终端被广泛应用,广告播放终端需要重服务器下载播放文件,播放文件直接存储于磁盘上。终端下载文件时,服务器要不断的读取文件,进行磁盘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.将被请求的子文件从内存的缓存区复制到发出请求集的播放终端;
步骤14.重复步骤步骤8,直至已请求集与步骤11的中断集的补集为空。
较佳地,所述子文件大小信息为每个文件的md5校验码。
较佳地,步骤8为:服务端读取已复制子文件的编号和已复制子文件的md5校验码,按已复制子文件的编号为索引条件,比较已复制子文件的md5校验码是否与请求集中子文件的md5校验码相同,若相同,则复制成功,标记子文件为请求完成,若不同,则下载失败或子文件被篡改,标记子文件为中断,统计请求完成的子文件的数目,和请求完成的子文件的编号和md5校验码形成已请求集。
较佳地,步骤1中播放文件分割成N个大小相同的子文件前包括步骤,将播放文件转化为初始md5校验码;
步骤4中数据索引文件还包括初始md5校验码;
步骤10中合并所有子文件后,还包括步骤,读取合并文件的md5校验码,将合并文件的md5校验码与初始md5校验码比较,若相同则下载成功,若不同,则返回步骤1,对播放文件重新分割后重复步骤1~10,直至下载成功。
进一步地,步骤11中子文件大小信息为中断的子文件对应的请求集中子文件md5校验码。
本发明的有益效果为:服务端将大文件按顺序分割成很多个从小到大顺序拍了的小文件,并且编号。播放终端在下载前先请求要下载文件的信息,服务端返回大文件被分成的小文件数量、编号、每个文件的大小和最后一个文件的大小;播放终端第一次请求某个小文件时,该文件会被载入内存,并设置缓存时间,后续终端再请求这个小文件时,直接从内存读取;服务端和终端可根据每次请求的文件编号,即可知道下载进度;因网路故障中断下载的文件,再进行断点传输时,只需要从最后一次传输的编号开始接着往后情况即可;所有小文件下载完成,终端进行校验合并。
如此将大文件分割成小文件,系统每次只需要读取每个小文件,对系统资源影响小;将小文件进行缓存,提高性能;对每个小文件设置缓存时间,缓存时间后从内存中删除,保证在同一时间段只有一部分文件被载入内存,有效防止内存被占满或文件过多过大不能载入内存情况;断点传输只需要获得已下载文件的数据即可,简单准确;读取下载进度无需额外操作。
附图说明
图1为本发明的大文件下载传输方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明的核心思想是:将大文件分割成小文件,复制到内存缓存,播放终端每次只需要读取每个小文件,对系统资源影响小;将小文件进行缓存,提高性能;对每个小文件设置缓存时间,缓存时间后从内存中删除,保证在同一时间段只有一部分文件被载入内存,有效防止内存被占满或文件过多过大不能载入内存情况;分割下载便于实现断点传输,还增加了下载线程,提高下载速度。
图1为本发明实施例的方法流程示意图,一种大文件下载传输方法,包括以下步骤,
步骤S1.服务端将播放文件1转化为初始md5校验码,再将播放文件分割成N个子文件,子文件按从小到大顺序排列编号;md5即消息摘要算法(英语:md5Message-DigestAlgorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。它的作用就在于对下载回来的文件用WindowsMD5 Check做一次md5校验,以确保我们获得的文件与该站点提供的文件为同一文件。
步骤S2.服务端将N个子文件分别存储在磁盘;
步骤S3.生成数据索引文件;
步骤S4.播放终端向服务端发送读取请求时,服务端返回数据索引文件,播放终端读取数据索引文件,获得初始md5校验码、编号信息集、N个子文件的数量、每个子文件的md5校验码,根据编号信息集和每个子文件的md5校验码生成待请求集;
步骤S5.播放终端从待请求集中选取第i~j号子文件的编号形成请求集,向服务端发出请求;
步骤S6.服务端将第i~j号子文件从磁盘中复制到内存的缓存区,并设置缓存时间;
步骤S7.再将第i~j号子文件从内存的缓存区复制到发出请求集的播放终端;
步骤S8.服务端读取已复制子文件的编号和md5校验码,按已复制子文件的编号为索引条件,比较已复制子文件的md5校验码是否与请求集中子文件的md5校验码相同,若相同,则复制成功,标记子文件为请求完成,若不同,则下载失败或子文件被篡改,标记子文件为中断,统计请求完成的子文件的数目,和请求完成的子文件的编号和子文件md5校验码形成已请求集;
步骤S9.从步骤S8中统计所有中断的子文件的编号和中断的子文件对应的请求集中子文件md5校验码形成中断集;
步骤S10.从中断集中选取所有子文件形成请求集,向服务端发出请求;
步骤S11.将被请求的子文件从内存的缓存区复制到发出请求集的播放终端;
步骤S12.重复步骤步骤S8,直至已请求集与步骤S9的中断集的补集为空。
步骤S13.根据请求完成的子文件的数目的子文件数量与数据索引文件中子文件总数的比值,获得播放文件下载进度,根据已请求集与待请求集的补集,更新步骤S4的待请求集;
步骤S14顺次重复步骤S4~S8、步骤S13直至,步骤S13得到的待请求集为空,将已复制的所有子文件合并,读取合并文件的md5校验码,将合并文件的md5校验码与初始md5校验码比较,若相同则下载成功,若不同,则返回步骤S1,对播放文件重新分割后重复步骤S1~S14,直至下载成功。
步骤S14中若合并文件的md5校验码与初始md5校验码不同,说明,分割发生错误。
本发明的系统还包括依次信号连接的服务端、磁盘、缓存,终端与缓存、磁盘通讯连接。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种大文件下载传输方法,其特征在于,包括以下步骤,
步骤1.服务端将播放文件分割成N个子文件,子文件按从小到大顺序排列编号;
步骤2.服务端将N个子文件分别存储在磁盘;
步骤3.生成数据索引文件;
步骤4.播放终端向服务端发送读取请求时,服务端返回数据索引文件,播放终端读取数据索引文件,获得编号信息集、N个子文件的数量、每个子文件的大小信息,根据编号信息集和每个子文件的大小信息生成待请求集;
步骤5.播放终端从待请求集中选取第i~j号子文件形成请求集,向服务端发出请求;
步骤6.服务端将第i~j号子文件从磁盘中复制到内存的缓存区,并设置缓存时间;
步骤7.再将第i~j号子文件从内存的缓存区复制到发出请求集的播放终端;
步骤8.服务端读取已复制子文件的编号和大小信息,按已复制子文件的编号为索引条件,比较已复制子文件的大小信息是否与请求集中子文件的大小信息相同,若相同,则标记子文件为请求完成,若不同,则标记子文件为中断,统计请求完成的子文件的数目,和请求完成的子文件的编号和子文件大小信息形成已请求集;
步骤9.根据请求完成的子文件的数目的子文件数量与数据索引文件中子文件总数的比值,获得播放文件下载进度,根据已请求集与待请求集的补集,更新步骤4的待请求集;
步骤10.重复步骤4~9直至,步骤9得到的待请求集为空,将已复制的所有子文件合并。
2.根据权利要求1所述的大文件下载传输方法,其特征在于,若已请求集小于请求集,播放终端执行步骤9前,执行断点传输,包括以下步骤:
步骤11.从步骤8中统计所有中断的子文件的编号和子文件大小信息形成中断集;
步骤12.从中断集中选取所有子文件形成请求集,向服务端发出请求;
步骤13.将被请求的子文件从内存的缓存区复制到发出请求集的播放终端;
步骤14.重复步骤步骤8,直至已请求集与步骤11的中断集的补集为空。
3.根据权利要求1所述的大文件下载传输方法,其特征在于,所述子文件大小信息为每个文件的md5校验码。
4.根据权利要求1所述的大文件下载传输方法,其特征在于,步骤8为:服务端读取已复制子文件的编号和已复制子文件的md5校验码,按已复制子文件的编号为索引条件,比较已复制子文件的md5校验码是否与请求集中子文件的md5校验码相同,若相同,则复制成功,标记子文件为请求完成,若不同,则下载失败或子文件被篡改,标记子文件为中断,统计请求完成的子文件的数目,和请求完成的子文件的编号和md5校验码形成已请求集。
5.根据权利要求1所述的大文件下载传输方法,其特征在于,步骤1中播放文件分割成N个大小相同的子文件前包括步骤,将播放文件转化为初始md5校验码;
步骤4中数据索引文件还包括初始md5校验码;
步骤10中合并所有子文件后,还包括步骤,读取合并文件的md5校验码,将合并文件的md5校验码与初始md5校验码比较,若相同则下载成功,若不同,则返回步骤1,对播放文件重新分割后重复步骤1~10,直至下载成功。
6.根据权利要求2所述的大文件下载传输方法,其特征在于,步骤11中子文件大小信息为中断的子文件对应的请求集中子文件md5校验码。
CN202010411003.XA 2020-05-15 2020-05-15 一种大文件下载传输方法 Pending CN111614744A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010411003.XA CN111614744A (zh) 2020-05-15 2020-05-15 一种大文件下载传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010411003.XA CN111614744A (zh) 2020-05-15 2020-05-15 一种大文件下载传输方法

Publications (1)

Publication Number Publication Date
CN111614744A true CN111614744A (zh) 2020-09-01

Family

ID=72205661

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010411003.XA Pending CN111614744A (zh) 2020-05-15 2020-05-15 一种大文件下载传输方法

Country Status (1)

Country Link
CN (1) CN111614744A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113992651A (zh) * 2021-09-24 2022-01-28 深圳市有方科技股份有限公司 一种基于文件传输协议ftp的下载方法和相关产品

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101656751A (zh) * 2008-08-18 2010-02-24 北京数码大方科技有限公司 加速上传与下载文件的方法及其系统
CN102223416A (zh) * 2011-06-24 2011-10-19 Tcl集团股份有限公司 一种媒体文件的传输方法及系统
CN103686255A (zh) * 2013-11-22 2014-03-26 乐视致新电子科技(天津)有限公司 一种基于hls协议的视频广告投放方法及其装置
CN105592369A (zh) * 2014-10-21 2016-05-18 中国移动通信集团公司 一种视频摘要处理方法及装置
CN105847941A (zh) * 2016-03-17 2016-08-10 央广视讯传媒股份有限公司 一种基于hls协议的音视频流直播方法
CN105933799A (zh) * 2016-05-19 2016-09-07 成都虚拟世界科技有限公司 一种视频播放方法及装置
US20180205976A1 (en) * 2015-09-30 2018-07-19 Huawei Technologies Co., Ltd. Method and apparatus of obtaining video fragment

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101656751A (zh) * 2008-08-18 2010-02-24 北京数码大方科技有限公司 加速上传与下载文件的方法及其系统
CN102223416A (zh) * 2011-06-24 2011-10-19 Tcl集团股份有限公司 一种媒体文件的传输方法及系统
CN103686255A (zh) * 2013-11-22 2014-03-26 乐视致新电子科技(天津)有限公司 一种基于hls协议的视频广告投放方法及其装置
CN105592369A (zh) * 2014-10-21 2016-05-18 中国移动通信集团公司 一种视频摘要处理方法及装置
US20180205976A1 (en) * 2015-09-30 2018-07-19 Huawei Technologies Co., Ltd. Method and apparatus of obtaining video fragment
CN105847941A (zh) * 2016-03-17 2016-08-10 央广视讯传媒股份有限公司 一种基于hls协议的音视频流直播方法
CN105933799A (zh) * 2016-05-19 2016-09-07 成都虚拟世界科技有限公司 一种视频播放方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HUZILINITACHI: "nginx针对大文件缓存改造设计一(分块缓存及索引设计),https://blog.csdn.net/huzilinitachi/article/details/79538635", 《CSDN》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113992651A (zh) * 2021-09-24 2022-01-28 深圳市有方科技股份有限公司 一种基于文件传输协议ftp的下载方法和相关产品
CN113992651B (zh) * 2021-09-24 2024-05-14 深圳市有方科技股份有限公司 一种基于文件传输协议ftp的下载方法和相关产品

Similar Documents

Publication Publication Date Title
US20140304513A1 (en) Storage drive processing multiple commands from multiple servers
EP2583176B1 (en) Error detection for files
CN108563532B (zh) 数据处理方法及相关装置
US8601358B2 (en) Buffer transfer check on variable length data
KR20130139883A (ko) 오프로드 판독 및 기록
EP2510434B1 (en) Consistency without ordering dependency
US20110067019A1 (en) Delta compression using multiple pointers
WO2021174828A1 (zh) 数据处理方法、装置、计算机系统及可读存储介质
US11199970B2 (en) Data storage device and method for rewriting parameters thereof
US7356622B2 (en) Method and apparatus for managing and formatting metadata in an autonomous operation conducted by a third party
US5719885A (en) Storage reliability method and apparatus
CN111813345A (zh) 一种数据传输方法、装置、服务器及可读存储介质
CN112558868A (zh) 一种配置数据存储的方法和装置及设备
CN111614744A (zh) 一种大文件下载传输方法
CN110955545A (zh) 一种数据完整性校验方法、系统及相关设备
CN111464258B (zh) 一种数据校验方法、装置、计算设备及介质
US7293139B2 (en) Disk array system generating a data guarantee code on data transferring
CN111897833A (zh) 数据处理方法及装置
KR102088170B1 (ko) 신구 데이터간의 차분에 대한 데이터 구조화 방법 및 그 디바이스
CN114388053B (zh) Ssd数据测试方法、装置、存储介质及测试设备
CN113259410B (zh) 一种基于分布式存储的数据传输校验方法及系统
CN110806979A (zh) 接口返回值的校验方法、装置、设备及存储介质
CN111984591A (zh) 文件存储、读取方法、装置、设备及计算机可读存储介质
CN111460436B (zh) 一种基于区块链的非结构化数据操作方法和系统
US6915475B1 (en) Data integrity management for data storage systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200901

WD01 Invention patent application deemed withdrawn after publication