CN109240982B - 文件分发方法及系统及存储介质 - Google Patents
文件分发方法及系统及存储介质 Download PDFInfo
- Publication number
- CN109240982B CN109240982B CN201710536346.7A CN201710536346A CN109240982B CN 109240982 B CN109240982 B CN 109240982B CN 201710536346 A CN201710536346 A CN 201710536346A CN 109240982 B CN109240982 B CN 109240982B
- Authority
- CN
- China
- Prior art keywords
- file
- distribution
- change
- task
- changed
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种文件分发方法,包括步骤:当接收到客户端发起的分发任务请求时,根据所述分发任务请求获取文件/文件夹信息;根据所述文件/文件夹信息查找预设变更文件列表,获取与所述文件/文件夹信息对应的变更文件;根据所述变更文件建立分发任务,并通知边缘节点执行该分发任务将所述变更文件分发至客户端。本发明所有边缘节点都采用完全镜像源站的方式,海量文件的更新到所有节点,当文件更新到所有边缘点后,文件即已经完成镜像部署,不需要回源,彻底解决回源引发的访问慢、卡顿等问题,通过查找预设变更文件列表快速发现变更文件并分发,可以极大提高相关行业管理人员的工作效率和便捷性。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种文件分发方法及系统及存储介质。
背景技术
随着互联网业务的迅猛发展,对网络应用或者大文件的下载等服务应用的服务质量及用户体验的提高已不再局限于底层的网络控制。内容分发网络(CDN)技术应运而生。CDN是能在传统的IP网发布带宽丰富媒体而特别优化的网络覆盖层。CDN是一种基于质量和秩序的网络服务模式。CDN以提高互联网业务的服务质量及用户体验为目的,通过网络边缘节点向互联网业务的终端用户提供更好的网络应用体验。
目前静态文件CDN服务都是采用缓存技术,将静态内容主动或被动缓存到各地的边缘节点,以加快全网访问速度,提高内容分发能力。但是缓存技术在资源更新或淘汰时经常会遇到访问速度慢,阻塞源站等问题。而互联网网站或应用经常需要批量更新海量文件,而且需要在短时间内完成,否则对网站的运营、游戏的更新等问题造成重大影响。虽然各CDN厂商均有独立的存储和分发网络,但是都存在文件批量同步的效率瓶颈,当遇到重大的文件更新时,比如游戏资源的批量更新,用户无法在短时间内将所有文件同步至所有CDN节点,从而在管理上存在时效性问题。
发明内容
为解决上述技术问题,本发明提供一种文件分发方法及系统,通过查找变更信息快速获得变更文件进行分发,极大提高文件在更新时的效率和便捷性。
本发明提供的技术方案如下:
本发明公开了一种文件分发方法,包括步骤:当接收到客户端发起的分发任务请求时,根据所述分发任务请求获取文件/文件夹信息;根据所述文件/文件夹信息查找预设变更文件列表,获取与所述文件/文件夹信息对应的变更文件;根据所述变更文件建立分发任务,并通知边缘节点执行该分发任务,将变更文件分发至客户端。
进一步地,还包括步骤:预先建立所述预设变更文件列表;所述预设变更文件列表存储有发生变更的文件的变更信息。
进一步地,还包括步骤:实时监测是否有文件/文件夹发生变更;当监测到有文件/文件夹发生变更时,生成所述变更信息存储至预设变更文件列表。
进一步地,还包括步骤:当接收到客户端上传的文件时,保存所述文件的版本信息。
进一步地,所述步骤根据所述变更文件建立分发任务进一步包括步骤:所述变更文件为多个时,对多个所述变更文件进行哈希计算,并建立在一个分发任务中。
本发明公开了一种文件分发系统,包括存储中心以及至少一个边缘节点;所述存储中心用于当接收到客户端发起的分发任务请求时,根据所述分发任务请求获取文件/文件夹信息,并根据所述文件/文件夹信息查找预设变更文件列表,获取与所述文件/文件夹信息对应的变更文件;以及用于根据所述变更文件建立分发任务,并通知边缘节点执行该分发任务;所述边缘节点用于执行该分发任务,将所述变更文件分发至客户端。
进一步地,所述存储中心还用于实时监测是否有文件/文件夹发生变更;以及当监测到有文件/文件夹发生变更时,生成所述变更信息存储至所述预设变更文件列表。
进一步地,所述存储中心还用于当接收到客户端上传的文件时,保存所述文件的版本信息。
进一步地,所述存储中心还用于:所述变更文件为多个时,对多个所述变更文件进行哈希计算,并建立在一个分发任务中。
本发明公开了一种存储介质,其中存储有多条指令,所述指令适于由处理器加载并执行:当接收到客户端发起的分发任务请求时,根据所述分发任务请求获取文件/文件夹信息;根据所述文件/文件夹信息查找预设变更文件列表,获取与所述文件/文件夹信息对应的变更文件;根据所述变更文件建立分发任务,并通知边缘节点执行该分发任务,将所述变更文件分发至客户端。
与现有技术相比,本发明具有以下有益效果:
1、快速批量发现变更文件,极大提高相关行业管理人员的工作效率和便捷性,同时也保证了数据本身的完整性和安全性;
2、存储了上传的文件的文件版本,可以支持历史文件版本查找和恢复,对业务系统的安全性提供了更好的保证;
3、批量文件分发可以将多个文件放入同一个分发任务,加快文件分发速度,尤其是海量小文件的分发速度。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对本发明予以进一步说明。
图1为本发明一种文件分发方法的主要步骤示意图;
图2为本发明一种文件分发方法的一个实施例的步骤示意图;
图3为本发明一种文件分发系统的组成框图。
附图标号说明:
100、客户端,200、存储中心,300、边缘节点。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
图1为本发明一种文件分发方法的一个实施例的步骤示意图。
如图1所示,一种文件分发方法,包括步骤:S100当接收到客户端发起的分发任务请求时,根据所述分发任务请求获取文件/文件夹信息;S200根据所述文件/文件夹信息查找预设变更文件列表,获取与所述文件/文件夹信息对应的变更文件;S300根据所述变更文件建立分发任务,并通知边缘节点执行该分发任务,将变更文件分发至客户端。
本发明所有边缘节点都采用完全镜像源站的方式,海量文件的更新到所有节点,当文件更新到所有边缘点后,文件即已经完成镜像部署,不需要回源,彻底解决回源引发的访问慢、卡顿等问题,通过查找预设变更文件列表快速发现变更文件并分发,可以极大提高相关行业管理人员的工作效率和便捷性。
优选的,还包括步骤:S000预先建立所述预设变更文件列表;所述预设变更文件列表存储有发生变更的文件的变更信息。
优选的,还包括步骤:实时监测是否有文件/文件夹发生变更;当监测到有文件/文件夹发生变更时,生成所述变更信息存储至所述预设变更文件列表。
具体的,本发明采用文件管理机制如下:采用linux inotify机制,实时获取每个新增、更新的文件的具体信息,包括文件路径,修改时间,大小等生成变更信息,然后将变更信息按路径存储到存储中心的预设变更文件列表中,以给后续的查找变更文件使用。当用户点击分发时,只需要将存储中心里该目录的所有变更信息读出来即可,不需要再去遍历目录。
优选的,还包括步骤:当接收到客户端上传的文件时,保存所述文件的版本信息。具体的,通过保存文件的历史版本,保证了数据本身的完整性,在有需要时也可提供历史版本查找和恢复,不仅对业务系统的安全性、准确性提供了更好的保证,而且对最终用户的网页浏览、资源下载,游戏静态资源的获取都提供了更快速优质的传输方案,极大的提高了相关行业的用户体验。
优选的,所述步骤根据所述变更文件建立分发任务进一步包括步骤:S310所述变更文件为多个时,对多个所述变更文件进行哈希计算,并建立在一个分发任务中。具体的,批量文件分发可以将多个变更文件放入同一个分发任务和用于哈希计算的哈希校验文件中,加快文件分发速度,尤其是海量小文件的分发速度。
下面以实际例子来介绍本发明的工作流程如下:
1、实时监控是否有文件发生变更,当有文件变更时,生成文件的变更信息并更新预设变更文件列表。
2、当有客户通过客户端选择需要的文件/文件夹进行分发,生成分发任务请求发送至存储中心。
3、存储中心根据分发任务请求找出客户所选的文件是否为变更的文件,或所选的文件夹里有变更的所有文件,获取变更的文件。
4、将这些变更文件进行哈希计算,建立同一个分发任务。
5、存储中心通知边缘点参与该任务的分发,管理分发进度。
6、当分发完毕时,边缘点可以提供新增文件部分的HTTP服务。
图2为本发明一种文件分发系统的组成示意图,如图2所示,一种文件分发系统,包括存储中心200以及至少一个边缘节点300;所述存储中心200用于当接收到客户端100发起的分发任务请求时,根据所述分发任务请求获取文件/文件夹信息,并根据所述文件/文件夹信息查找预设变更文件列表,获取与所述文件/文件夹信息对应的变更文件;以及用于根据所述变更文件建立分发任务,并通知边缘节点300执行该分发任务;所述边缘节点300用于执行该分发任务,将所述变更文件分发至客户端100。
本发明所有边缘节点300都采用完全镜像源站的方式,海量文件的更新到所有节点,当文件更新到所有边缘点后,文件即已经完成镜像部署,不需要回源,彻底解决回源引发的访问慢、卡顿等问题,通过查找预设变更文件列表快速发现变更文件并分发,可以极大提高相关行业管理人员的工作效率和便捷性。
优选的,所述存储中心200还用于实时监测是否有文件/文件夹发生变更;以及当监测到有文件/文件夹发生变更时,生成所述变更信息存储至所述预设变更文件列表。
具体的,本发明采用文件管理机制如下:采用linux inotify机制,实时获取每个新增、更新的文件的具体信息,包括文件路径,修改时间,大小等生成变更信息,然后将变更信息按路径存储到存储中心200的预设变更文件列表中,以给后续的查找变更文件使用。当用户点击分发时,只需要将存储中心200里该目录的所有变更信息读出来即可,不需要再去遍历目录。
优选的,所述存储中心200还用于当接收到客户端100上传的文件时,保存所述文件的版本信息。
具体的,通过保存文件的历史版本,保证了数据本身的完整性,在有需要时也可提供历史版本查找和恢复,不仅对业务系统的安全性、准确性提供了更好的保证,而且对最终用户的网页浏览、资源下载,游戏静态资源的获取都提供了更快速优质的传输方案,极大的提高了相关行业的用户体验。
优选的,所述存储中心200还用于:所述变更文件为多个时,对多个所述变更文件进行哈希计算,并建立在一个分发任务中。具体的,批量文件分发可以将多个变更文件放入同一个分发任务和用于哈希计算的哈希校验文件中,加快文件分发速度,尤其是海量小文件的分发速度。
本系统主要包括客户端100、存储中心200和边缘节点300。其中存储中心200负责文件的存储、文件版本管理与变更查找、变更文件的hash文件制作、新建分发任务管理等功能,可以以libgit2为基础,管理用户上传的文件版本信息,查看文件变更部分,可以查找所有历史版本和修改日志,或者使用内核提供的inotify功能,快速实时获取文件变更信息,将变更信息预存储在KV系统中。因此,系统可以快速按目录、文件查询变更文件,选择文件进行分发操作。
客户端100使用FTP协议将文件上传至存储中心200,并提供分发、删除改名,同步,任务查看,历史记录查看等操作的支持,同时提供Rsync服务,来完成文件的增量上传,文件系统可以使用本地存储,或者将分布式存储映射为本地磁盘,需要支持quota设置。
边缘节点300含存储和webserver功能,提供基于HTTP协议的文件访问,同时提供常用的防盗链、重定向等功能。
本发明所述系统在Linux系统作为后台服务启动,并需要进程健康检查,如果遇到异常或退出的情况,需要及时恢复。本系统配置文件存放在安装目录下,配置格式如下:
本发明还公开了一种存储介质,其中存储有多条指令,所述指令适于由处理器加载并执行:当接收到客户端发起的分发任务请求时,根据所述分发任务请求获取文件/文件夹信息;根据所述文件/文件夹信息查找预设变更文件列表,获取与所述文件/文件夹信息对应的变更文件;根据所述变更文件建立分发任务,并通知边缘节点执行该分发任务,将所述变更文件分发至客户端。
本发明还公开了一种文件分发系统,包括处理器,适于实现各指令;以及存储设备,适于存储多条指令,所述指令适于由处理器加载并执行:当接收到客户端发起的分发任务请求时,根据所述分发任务请求获取文件/文件夹信息;根据所述文件/文件夹信息查找预设变更文件列表,获取与所述文件/文件夹信息对应的变更文件;根据所述变更文件建立分发任务,并通知边缘节点执行该分发任务,将所述变更文件分发至客户端。
优选的,所述指令还适于由处理器加载并执行:实时监测是否有文件/文件夹发生变更;当监测到有文件/文件夹发生变更时,生成所述变更信息存储至预设变更文件列表。
优选的,所述指令还适于由处理器加载并执行:当接收到客户端上传的文件时,保存所述文件的版本信息。
优选的,所述指令进一步适于由处理器加载并执行:所述变更文件为多个时,对多个所述变更文件进行哈希计算,并建立在一个分发任务中。
需要说明的是,本装置中各模块之间的信息交互、执行过程等内容与上述方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种文件分发方法,其特征在于,包括步骤:
当接收到客户端发起的分发任务请求时,根据所述分发任务请求获取文件/文件夹信息;
根据所述文件/文件夹信息查找预设变更文件列表,获取与所述文件/文件夹信息对应的变更文件;
根据所述变更文件建立分发任务,并通知边缘节点执行该分发任务将所述变更文件分发至客户端;
实时监测是否有文件/文件夹发生变更;
当监测到有文件/文件夹发生变更时,生成变更信息存储至预设变更文件列表。
2.如权利要求1所述的文件分发方法,其特征在于,还包括步骤:预先建立所述预设变更文件列表;所述预设变更文件列表存储有发生变更的文件的变更信息。
3.如权利要求1所述的文件分发方法,其特征在于,还包括步骤:当接收到客户端上传的文件时,保存所述文件的版本信息。
4.如权利要求1所述的文件分发方法,其特征在于,所述步骤根据所述变更文件建立分发任务进一步包括步骤:所述变更文件为多个时,对多个所述变更文件进行哈希计算,并建立在一个分发任务中。
5.一种文件分发系统,其特征在于,包括客户端、存储中心以及至少一个边缘节点;
所述客户端用于发起分发任务请求;
所述存储中心用于当接收到客户端发起的分发任务请求时,根据所述分发任务请求获取文件/文件夹信息,并根据所述文件/文件夹信息查找预设变更文件列表,获取与所述文件/文件夹信息对应的变更文件;以及用于根据所述变更文件建立分发任务,并通知边缘节点执行该分发任务;
所述边缘节点用于执行该分发任务,将所述变更文件分发至客户端;
所述存储中心还用于实时监测是否有文件/文件夹发生变更;以及当监测到有文件/文件夹发生变更时,生成变更信息存储至所述预设变更文件列表。
6.如权利要求5所述的文件分发系统,其特征在于,所述存储中心还用于当接收到客户端上传的文件时,保存所述文件的版本信息。
7.如权利要求5所述的文件分发系统,其特征在于,所述存储中心还用于:
所述变更文件为多个时,对多个所述变更文件进行哈希计算,并建立在一个分发任务中。
8.一种存储介质,其中存储有多条指令,所述指令适于由处理器加载并执行:
当接收到客户端发起的分发任务请求时,根据所述分发任务请求获取文件/文件夹信息;
根据所述文件/文件夹信息查找预设变更文件列表,获取与所述文件/文件夹信息对应的变更文件;
根据所述变更文件建立分发任务,并通知边缘节点执行该分发任务,将所述变更文件分发至客户端;
实时监测是否有文件/文件夹发生变更;
当监测到有文件/文件夹发生变更时,生成变更信息存储至预设变更文件列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710536346.7A CN109240982B (zh) | 2017-07-04 | 2017-07-04 | 文件分发方法及系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710536346.7A CN109240982B (zh) | 2017-07-04 | 2017-07-04 | 文件分发方法及系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109240982A CN109240982A (zh) | 2019-01-18 |
CN109240982B true CN109240982B (zh) | 2022-03-08 |
Family
ID=65083242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710536346.7A Active CN109240982B (zh) | 2017-07-04 | 2017-07-04 | 文件分发方法及系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109240982B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918106B (zh) * | 2019-02-21 | 2022-05-17 | 广东星辉天拓互动娱乐有限公司 | 一种混合cdn统一源站自动刷新方法及系统 |
CN111400241B (zh) * | 2019-11-14 | 2024-04-05 | 杭州海康威视系统技术有限公司 | 数据重构方法和装置 |
CN113010479A (zh) * | 2021-03-18 | 2021-06-22 | 山东英信计算机技术有限公司 | 一种文件管理方法、装置与介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101336430A (zh) * | 2006-01-30 | 2008-12-31 | 微软公司 | 自动文件分发 |
WO2011103293A3 (en) * | 2010-02-17 | 2012-01-05 | Rubenstein, Allen | Content and application delivery network aggregation |
CN104333584A (zh) * | 2014-10-27 | 2015-02-04 | 深圳市东信时代信息技术有限公司 | Cdn文件分发系统及方法 |
CN106790704A (zh) * | 2017-02-27 | 2017-05-31 | 网宿科技股份有限公司 | 一种访问云存储文件的方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8510267B2 (en) * | 2011-03-08 | 2013-08-13 | Rackspace Us, Inc. | Synchronization of structured information repositories |
-
2017
- 2017-07-04 CN CN201710536346.7A patent/CN109240982B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101336430A (zh) * | 2006-01-30 | 2008-12-31 | 微软公司 | 自动文件分发 |
WO2011103293A3 (en) * | 2010-02-17 | 2012-01-05 | Rubenstein, Allen | Content and application delivery network aggregation |
CN104333584A (zh) * | 2014-10-27 | 2015-02-04 | 深圳市东信时代信息技术有限公司 | Cdn文件分发系统及方法 |
CN106790704A (zh) * | 2017-02-27 | 2017-05-31 | 网宿科技股份有限公司 | 一种访问云存储文件的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109240982A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9690568B2 (en) | Client-side script bundle management system | |
CN111970315A (zh) | 推送消息的方法、装置及系统 | |
US8903838B2 (en) | System and method for preventing duplicate file uploads in a synchronized content management system | |
US10242100B2 (en) | Managing cached data in a network environment | |
CN108173774B (zh) | 一种客户端的升级方法及系统 | |
CN102065110A (zh) | 一种基于p2sp的客户端软件在线升级的方法和系统 | |
EP2735972A1 (en) | Data transmission and reception system | |
CN102882985A (zh) | 基于云存储的文件共享方法 | |
CN109240982B (zh) | 文件分发方法及系统及存储介质 | |
EP2874378A1 (en) | Method and apparatus for performing server handoff in a name-based content distribution system | |
CN104468807A (zh) | 进行网页缓存的处理方法、云端装置、本地装置及系统 | |
WO2012151993A1 (zh) | 业务推送方法和装置 | |
CN110932912A (zh) | 一种微服务架构下配置文件统一管理的实现方法 | |
KR101573197B1 (ko) | 피투피 기반 파일 전송 제어 방법 및 이를 위한 피투피 통신 제어 장치 | |
EP2988518A1 (en) | System and method for all-in-one content stream in content-centric networks | |
CN102567339A (zh) | 一种获取起始页的方法、装置和系统 | |
CN107704465A (zh) | 静态资源更新方法以及静态资源管理系统 | |
US9438666B2 (en) | Method and system for resource download | |
CN103457979A (zh) | 分布式文件存储系统及方法 | |
CN103685511A (zh) | 一种数据分发方法、装置及系统 | |
CN107809470B (zh) | 应用程序自动化部署的方法和装置 | |
CN115576599A (zh) | 软件开发的配置方法、系统和计算机设备 | |
CN106933569B (zh) | 一种网页刷新方法及装置 | |
CN111935242A (zh) | 数据传输方法、装置、服务器以及存储介质 | |
CN111193789A (zh) | 订阅信息推送方法、装置、计算机设备和可读存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |