CN105049486A - 静态文件的版本管理、文件拉取控制方法、装置及*** - Google Patents
静态文件的版本管理、文件拉取控制方法、装置及*** Download PDFInfo
- Publication number
- CN105049486A CN105049486A CN201510333621.6A CN201510333621A CN105049486A CN 105049486 A CN105049486 A CN 105049486A CN 201510333621 A CN201510333621 A CN 201510333621A CN 105049486 A CN105049486 A CN 105049486A
- Authority
- CN
- China
- Prior art keywords
- file
- static
- version number
- module
- configuration file
- 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.)
- Granted
Links
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/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Medical Informatics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种静态文件的版本管理、文件拉取控制方法、装置及***。其中,静态文件的版本管理方法包括:为至少一个静态文件中的每个静态文件标记一个版本号,并将标记有版本号的所述静态文件作为待发布文件;生成对应至少一个待发布文件的版本配置文件;所述版本配置文件中包括所述至少一个待发布文件各自的文件名及版本号信息;将所述至少一个待发布文件发布到内容分发网络服务器中,并将所述版本配置文件以灰度发布方式发布到运营服务器中。本发明中的技术方案能够实现对静态文件版本的清晰管理和控制,避免静态文件版本的混乱,并可支持静态文件的回滚、灰度发布和增量发布。
Description
技术领域
本申请涉及互联网领域,特别涉及一种静态文件的版本管理方法、文件拉取控制方法、版本管理装置、文件拉取控制装置及版本控制***。
背景技术
浏览器在获取相关静态文件,如javascript脚本语言编写的js文件、层叠样式表单(CascadingStyleSheet,css)文件以及图片文件等,生成网页时,为了提高Web的性能,通常会在首次从内容分发网络(ContentDeliveryNetwork,CDN)下载这些静态文件时,将这些静态文件进行缓存,并为之设置一个缓存时间,只要该缓存时间没有失效,下次再生成该网页时,便无需从CDN中重新拉取这些静态文件,而只需从本地缓存区获取即可,提高了网路速度,也节约了网路流量。
但目前的问题是:当有静态文件的内容存在更新时,如某js文件a.js中变更了部分代码或增加、删除了部分代码等,此时,如果浏览器缓存了该a.js文件且其缓存时间未失效的话,则浏览器仍然会调用本地缓存的该a.js文件,而不会从CDN中重新拉取更新后的a.js文件,这一定程序上就会造成网页静态文件版本的混乱。
为了解决这个问题,目前提出了两种解决方案。第一种是在统一资源定位符(UniformResourceLocator,URL)后面加一个query串来区别不同的版本,例如:http:www.qq.com/a.js?version=123。第二种是直接更改文件名来实现版本的区分,例如:http:www.qq.com/a123.js。这两种方案中的实现方式都是通过手工更改来实现的,容易操作失误;另外,两种方式都不支持文件回滚,即在发布的新版本存在错误时,无法回退至之前的版本;此外,这两种方案也不支持灰度发布和增量发布。
为此,本领域内的技术人员还在寻找其它的解决方案。
发明内容
有鉴于此,本发明实施例中一方面提供了一种静态文件的版本管理方法和文件拉取控制方法,另一方面提供了一种静态文件的版本管理装置、文件拉取控制装置及版本控制***,用以实现对静态文件版本的清晰管理和控制,避免静态文件版本的混乱,并可支持静态文件的回滚、灰度发布和增量发布。
本发明所提供的静态文件的版本管理方法,包括:
为至少一个静态文件中的每个静态文件标记一个版本号,并将标记有版本号的所述静态文件作为待发布文件;
生成对应至少一个待发布文件的版本配置文件;所述版本配置文件中包括所述至少一个待发布文件各自的文件名及版本号信息;
将所述至少一个待发布文件发布到内容分发网络服务器中,并将所述版本配置文件以灰度发布方式发布到运营服务器中,以便在一运营服务器接收到来自一浏览器的浏览请求时,根据所述浏览请求读取对应的版本配置文件,将所述版本配置文件中包括的文件名及版本号信息提供给所述浏览器,以使得所述浏览器能够根据所述文件名及版本号信息从所述内容分发网络服务器中拉取对应的静态文件,并执行所拉取的静态文件。
本发明所提供的静态文件的文件拉取控制方法,包括:
接收来自一浏览器的浏览请求;
根据所述浏览请求读取对应的版本配置文件,将所述版本配置文件中包括的文件名及版本号信息提供给所述浏览器,以便所述浏览器根据所述文件名及版本号信息从所述内容分发网络服务器中拉取对应各文件名及版本号信息的静态文件,并执行所拉取的静态文件。
本发明所提供的静态文件的版本管理装置,用于一版本管理服务器,所述装置包括:版本号标记模块、版本配置文件生成模块、静态资源发布模块和版本配置文件发布模块;其中,
所述版本号标记模块用于为至少一个静态文件中的每个静态文件标记一个版本号,并将标记有版本号的所述静态文件作为待发布文件;
所述版本配置文件生成模块用于生成对应至少一个待发布文件的版本配置文件;所述版本配置文件中包括所述至少一个待发布文件各自的文件名及版本号信息;
所述静态资源发布模块用于将所述至少一个待发布文件发布到内容分发网络服务器中;
所述版本配置文件发布模块用于将所述版本配置文件以灰度发布方式发布到运营服务器中,以便在一运营服务器接收到来自一浏览器的浏览请求时,根据所述浏览请求读取对应的版本配置文件,将所述版本配置文件中包括的文件名及版本号信息提供给所述浏览器,以使得所述浏览器能够根据所述文件名及版本号信息从所述内容分发网络服务器中拉取对应的静态文件,并执行所拉取的静态文件。
本发明所提供的静态文件的文件拉取控制装置,用于一运营服务器,所述装置包括:
接收模块,用于接收来自一浏览器的浏览请求;
配置文件读取模块,用于根据所述浏览请求读取对应的版本配置文件,并获取所述版本配置文件中包括的文件名及版本号信息;
发送模块,用于将所述文件名及版本号信息提供给所述浏览器,以便所述浏览器根据所述文件名及版本号信息从所述内容分发网络服务器中拉取对应各文件名及版本号信息的静态文件,并执行所拉取的静态文件。
本发明所提供的静态文件的版本控制***,包括:一版本管理服务器、一运营服务器、一内容分发网络服务器和一包括浏览器的终端;其中,
所述版本管理服务器包括上述的浏览器静态文件的版本管理装置;
所述运营服务器包括上述的浏览器静态文件的文件拉取控制装置。
可见,本发明实施例中,通过为每一个静态文件标记一个版本号,例如可在静态文件的文件名后面追加一个版本号,将标记有版本号的所述静态文件作为待发布文件,并生成对应至少一个待发布文件的版本配置文件,该版本配置文件中包括所述至少一个待发布文件各自的文件名及版本号信息;之后将所述至少一个待发布文件发布到CDN服务器中,并将所述版本配置文件以灰度发布方式发布到运营服务器中。之后,浏览器在向运营服务器发送浏览请求时,运营服务器可以读取对应的版本配置文件,并指示浏览器从CDN服务器中拉取对应的静态文件,从而实现了对静态文件版本的清晰管理和控制,避免了静态文件版本的混乱,并且由于向多个运营服务器发布版本配置文件时可采用灰度发布方式进行发布,因此可支持静态文件的灰度发布。又由于可只在版本配置文件中配置存在版本更新的静态文件,因此可支持静态文件的增量发布。此外,由于不同版本的静态文件是同时存在的,且具有相同的文件名,因此当发布的新版本存在错误时,可回退至之前版本的静态文件,从而实现了静态文件的回滚。
附图说明
为了更清楚的说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。其中,
图1为本发明各个实施例所涉及的一种实施环境的结构示意图;
图2为本发明实施例中一种静态文件的版本管理方法的示例性流程图;
图3为图2所示流程中步骤201的一种实现方法的流程示意图;
图4为本发明实施例中一种静态文件的文件拉取控制方法的示例性流程图;
图5为本发明实施例中一种静态文件的版本控制方法的示例性流程图;
图6为本发明实施例中一种静态文件的版本管理装置的示例性结构图;
图7为图6所示装置中版本号标记模块的结构示意图;
图8为本发明实施例中一种静态文件的文件拉取控制装置的示例性结构图;
图9为本发明实施例中一种服务器设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下举实施例对本发明进一步详细说明。
图1为本发明各个实施例所涉及的一种实施环境的结构示意图。如图1所示,该实施环境包括版本管理服务器110、运营服务器120、CDN服务器130和终端140。
其中,版本管理服务器110、运营服务器120、和CDN服务器130可以分别是一台服务器,或者分别由若干台服务器组成的服务器集群,或者分别是一个云计算服务中心。
终端140中运行有浏览器,终端140可以为手机、iPad、平板电脑、膝上型便携计算机和台式计算机等。
版本管理服务器110和运营服务器120之间,版本管理服务器110和CDN服务器130之间,运营服务器120和终端140之间,以及CDN服务器130与终端140之间,可以分别通过无线网络或有线网络相连。
图2为本发明实施例中一种静态文件的版本管理方法的示例性流程图。该方法主要应用于版本管理服务器110中。如图2所示,该方法可包括如下步骤:
步骤201,为至少一个静态文件中的每个静态文件标记一个版本号,并将标记有版本号的所述静态文件作为待发布文件。
为静态文件标记版本号的方式不同于目前通过更改文件名来区分版本号的方式。通过更改文件名来区分版本号的方式中,其文件名已经不是原来文件名了,即***不再将拥有原文件名的文件(如a.js)和拥有更改后的文件名的文件(如a123.js)作为同一文件的不同版本,而是将二者作为不同的文件看待。而本申请为静态文件标记版本号的方式中,并不改变静态文件的文件名。例如,有一种标记版本号的实现方式是在该文件名的基础上追加一个版本号,且该文件名和版本号之间存在一个间隔符,例如“_”。如果将版本号追加在文件名的后面的话,则通过检测符号“_”之前的内容可得到静态文件的文件名,通过检测符号“_”之后的内容可得到静态文件的版本号。这样一来,***会将标记有不同版本号的同一文件名的文件,例如a_1001.js和a_1002.js,视为同一文件的不同版本。
步骤202,生成对应至少一个待发布文件的版本配置文件;所述版本配置文件中包括所述至少一个待发布文件各自的文件名及版本号信息。
本步骤中,版本配置文件可以包括一个网站中所需的各静态文件的文件名及版本号信息。例如,生成的版本配置文件可以为version.ini。
步骤203,将所述至少一个待发布文件发布到CDN服务器130中。
本步骤中,所述至少一个待发布文件可打包成一个静态资源包,如压缩包release.tar.gz等,进行发布,之后CDN服务器130可进行拆包处理,如解压缩等,从而得到各个待发布文件。
步骤204,将所述版本配置文件以灰度发布方式发布到运营服务器120中。
之后,当一运营服务器120接收到来自一终端140的浏览器的浏览请求时,根据所述浏览请求读取对应的版本配置文件,将所述版本配置文件中包括的文件名及版本号信息提供给所述浏览器,以使得所述浏览器能够根据所述文件名及版本号信息从所述CDN服务器130中拉取对应的静态文件,并执行所拉取的静态文件。
为避免由于步骤203中的静态文件未发布成功而导致后续根据版本配置文件拉取静态文件时存在文件拉取失败的情况,在本实施例的其它实施方式中,步骤203和步骤204之间可进一步包括:资源发布校验步骤,即按照所述版本配置文件中包括的至少一个待发布文件各自的文件名及版本号信息,从所述CDN服务器130中拉取对应的静态文件,在所述版本配置文件对应的所有静态文件均拉取成功时,确定静态资源发布成功。此时,再执行步骤204。该资源发布校验步骤可由版本管理服务器110执行,也可由其它的校验设备完成。如果是由其它的校验设备完成的话,则在版本管理服务器110和该校验设备之间会存在信息交互,即首先版本管理服务器110会指示校验设备拉取与版本配置文件中包括的文件名及版本号信息对应的静态文件,之后校验设备会将静态文件拉取结果通知给版本管理服务器110,以便版本管理服务器110根据该结果确定是否将版本配置文件发布到运营服务器中。
此外,步骤201中的静态文件,可以是由不同开发人员通过对同一文件进行编写而依次完成的静态文件,也可以是不同开发人员分别完成同一静态文件的不同部分,即静态子文件后,再将各静态子文件合并后得到的静态文件。如果是后者,则步骤201之前,可进一步包括:生成一文件合并配置文件,该文件合并配置文件中包含用于指示分别将哪些文件合并在一起的文件合并参数;根据所述文件合并配置文件中的文件合并参数,将不同类型的静态子文件中各相同类型的静态子文件分别合并成一个静态文件,得到至少一个静态文件。例如,开发文件夹中可能存在若干个css子文件和若干个js子文件,则通过执行该合并操作后,会得到两个合并后的静态文件,即一个css文件和一个js文件。
为了将低各静态文件的体积,还可以对各静态文件执行压缩处理,用于去除文件中的空格、换行符以及注释等,从而得到压缩后的各静态文件。
具体实现时,步骤201为静态文件标记版本号的过程可有多种具体实现形式,图3中示出了其中的一种。如图3所示,为静态文件标记版本号的方法可包括如下步骤:
步骤301,对至少一个静态文件中的每个静态文件,判断是否存储有所述静态文件的原文件,如果没有,执行步骤302;否则,执行步骤303。
步骤302,为所述静态文件生成一个初始的版本号。
步骤303,判断所述静态文件相比已存储的该静态文件的原文件是否有内容更新,如果有,执行步骤204;否则,结束当前流程。
步骤304,根据已存储的所述原文件的版本号,为所述静态文件生成一个新的版本号。
例如,对于上述的a.js文件,为所述静态文件生成的版本号可以为1001。
步骤305,利用所述静态文件及所生成的版本号对所述原文件及其版本号进行更新。
步骤306,将所生成的版本号标记在所述静态文件的文件名中,并将标记有版本号的静态文件作为待发布文件。
例如,对于上述的a.js文件,在为所述a.js文件标记版本号时,可将为其生成的版本号1001追加在文件名的后面,例如,a_1001.js。
图4为本发明实施例中一种静态文件的文件拉取控制方法的示例性流程图。该方法主要应用于运营服务器120中。如图4所示,该方法可包括如下步骤:
步骤401,接收来自一终端的浏览器的浏览请求。
本步骤中,该浏览请求可以是对应一网站的浏览请求。
步骤402,根据所述浏览请求读取对应的版本配置文件,并提取所述版本配置文件中包括的文件名及版本号信息。
本步骤中,运营服务器根据对应的网站浏览请求,可找到对应的版本配置文件,并提取该版本配置文件中的文件名及版本号信息。
步骤403,将所述文件名及版本号信息提供给所述浏览器。之后,所述终端的浏览器根据所述文件名及版本号信息从CDN服务器中拉取对应各文件名及版本号信息的静态文件,并执行所拉取的静态文件,从而得到所述网站的网页。
图5为本发明实施例中一种静态文件的版本控制方法的示例性流程图。该方法应用于图1所示实施环境中。如图5所示,该方法包括如下步骤:
步骤501,版本管理服务器为至少一个静态文件中的每个静态文件标记一个版本号,并将标记有版本号的所述静态文件作为待发布文件。
步骤502,版本管理服务器生成对应至少一个待发布文件的版本配置文件;所述版本配置文件中包括所述至少一个待发布文件各自的文件名及版本号信息。
步骤503,将所述至少一个待发布文件发布到CDN服务器中。
本步骤中,所述至少一个待发布文件可打包成一个静态资源包进行发布。
步骤504,将所述版本配置文件以灰度发布方式发布到运营服务器中。
步骤505,运营服务器接收到来自终端的浏览器的浏览请求。
步骤506,运营服务器根据所述浏览请求读取对应的版本配置文件。
步骤507,运营服务器将所述版本配置文件中包括的文件名及版本号信息提供给所述终端的浏览器。
步骤508,终端的浏览器向所述CDN服务器发送文件获取请求。所述文件获取请求中包括所述文件名及版本号信息。
步骤509,CDN服务器将对应所述文件名及版本号信息的静态文件发送给终端的浏览器。
步骤510,终端的浏览器执行所获取的静态文件。
下述为本发明装置实施例,可以用于执行本发明对应的方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例中的描述。
图6为本发明实施例中一种静态文件的版本管理装置的示例性结构图。该版本管理装置可以通过软件、硬件或者两者结合的方式实现成为图1所示版本管理服务器110的部分或者全部。该版本管理装置可包括:版本号标记模块601、版本配置文件生成模块602、静态资源发布模块603和版本配置文件发布模块604。
其中,版本号标记模块601用于为至少一个静态文件中的每个静态文件标记一个版本号,并将标记有版本号的所述静态文件作为待发布文件。
版本配置文件生成模块602用于生成对应至少一个待发布文件的版本配置文件;所述版本配置文件中包括所述至少一个待发布文件各自的文件名及版本号信息。
静态资源发布模块603用于将所述至少一个待发布文件发布到内容分发网络服务器中。
版本配置文件发布模块604用于将所述版本配置文件以灰度发布方式发布到运营服务器中。之后,在一运营服务器接收到来自一浏览器的浏览请求时,根据所述浏览请求读取对应的版本配置文件,将所述版本配置文件中包括的文件名及版本号信息提供给所述浏览器,以使得所述浏览器能够根据所述文件名及版本号信息从所述内容分发网络服务器中拉取对应的静态文件,并执行所拉取的静态文件。
在一个实施方式中,该装置可进一步包括:文件合并配置文件生成模块605和文件合并模块606。
其中,文件合并配置文件生成模块605用于生成包含文件合并参数的文件合并配置文件;
文件合并模块606用于根据所述文件合并配置文件中的文件合并参数,将不同类型的静态子文件中各相同类型的静态子文件分别合并成一个静态文件,得到至少一个静态文件。
在一个实施方式中,该装置可进一步包括:文件压缩模块607,用于对每个静态文件进行去空格/注释压缩,得到压缩后的各静态文件。
在一个实施方式中,该装置可进一步包括:资源发布校验模块608,用于按照所述版本配置文件中包括的至少一个待发布文件各自的文件名及版本号信息,从所述内容分发网络服务器中拉取对应的静态文件,在所述版本配置文件对应的所有静态文件均拉取成功时,确定静态资源发布成功。相应地,版本配置文件发布模块604用于在确定静态资源发布成功时,将所述版本配置文件以灰度发布方式发布到运营服务器中。
在一个实施方式中,所述版本号标记模块601可如图7所示,包括:存储模块701、文件内容判断模块702、版本号生成模块703、原文件更新模块704和版本号追加模块705。
其中,存储模块701用于存储静态文件的原文件以及所述原文件的版本号。
文件更新判断模块702用于对每个静态文件,判断所述存储模块中是否存储有所述静态文件的原文件,如果没有,则指示所述版本号生成模块703为所述静态文件生成一初始的版本号;否则,判断所述静态文件相比所述原文件是否有内容更新,如果有,则指示所述版本号生成模块703为所述静态文件生成一新的版本号。
版本号生成模块703用于根据所述文件更新判断模块的指示为所述静态文件生成一初始的版本号,或根据所述存储模块701中已存储的所述原文件的版本号,为所述静态文件生成一新的版本号。
原文件更新模块704用于利用所述静态文件及所述版本号生成模块生成的版本号对所述存储模块中存储的所述静态文件的原文件及其版本号进行更新。
版本号追加模块705用于将所述版本号生成模块生成的版本号标记在所述静态文件的文件名中,并将标记有版本号的所述静态文件作为待发布文件。
图8为本发明实施例中一种静态文件的文件拉取控制装置的示例性结构图。该文件拉取控制装置可以通过软件、硬件或者两者结合的方式实现成为运营服务器的部分或者全部。该文件拉取控制装置可包括:接收模块801、配置文件读取模块802和发送模块803。
其中,接收模块801用于接收来自一浏览器的浏览请求。
配置文件读取模块802用于根据所述浏览请求读取对应的版本配置文件,并获取所述版本配置文件中包括的文件名及版本号信息。
发送模块803用于将所述文件名及版本号信息提供给所述浏览器,以便所述浏览器根据所述文件名及版本号信息从所述内容分发网络服务器中拉取对应各文件名及版本号信息的静态文件,并执行所拉取的静态文件。
本发明实施例中一种静态文件的版本控制***包括如图1所示的版本管理服务器110、至少一个运营服务器120、CDN服务器130和包括浏览器的终端140。
其中,版本管理服务器110可包括如图6至7中所述的浏览器静态文件的版本管理装置;运营服务器120包括如图8中所述的浏览器静态文件的文件拉取控制装置。
例如,版本管理服务器110用于为至少一个静态文件中的每个静态文件标记一个版本号,并将标记有版本号的所述静态文件作为待发布文件;生成对应至少一个待发布文件的版本配置文件;所述版本配置文件中包括所述至少一个待发布文件各自的文件名及版本号信息;将所述至少一个待发布文件发布到CDN服务器130中,并将所述版本配置文件以灰度发布方式发布到各运营服务器120中。
运营服务器120用于在接收到来自一浏览器的浏览请求时,根据所述浏览请求读取对应的版本配置文件,将所述版本配置文件中包括的文件名及版本号信息提供给所述终端140的浏览器。
终端140的浏览器用于根据所述文件名及版本号信息向所述CDN服务器130发送文件拉取请求,并接受所述CDN服务器130返回的静态文件,并执行所述静态文件。其中,文件拉取请求中包括所述文件名及版本号信息。
CDN服务器130用于接收来自终端140的浏览器的文件拉取请求,并将对应所述文件拉取请求中的文件名及版本号信息的静态文件发送给所述终端140的浏览器。
在一个实施方式中,版本管理服务器110可对至少一个静态文件中的每个静态文件,判断是否存储有所述静态文件的原文件,如果没有,则为所述静态文件生成一个初始的版本号;否则,判断所述静态文件相比已存储的该静态文件的原文件是否有内容更新,如果有,则根据已存储的所述原文件的版本号,为所述静态文件生成一个新的版本号,利用所述静态文件及所生成的版本号对所述原文件及其版本号进行更新;将所生成的版本号标记在所述静态文件的文件名中。
在一个实施方式中,版本管理服务器110可进一步生成包含文件合并参数的文件合并配置文件;根据所述文件合并配置文件中的文件合并参数,将不同类型的静态子文件中各相同类型的静态子文件分别合并成一个静态文件,得到至少一个静态文件。
在一个实施方式中,版本管理服务器110可进一步对每个静态文件进行去空格/注释压缩,得到压缩后的各静态文件。
在一个实施方式中,版本管理服务器110可进一步按照所述版本配置文件中包括的至少一个待发布文件各自的文件名及版本号信息,从所述内容分发网络服务器中拉取对应的静态文件,在所述版本配置文件对应的所有静态文件均拉取成功时,确定静态资源发布成功,并在确定静态资源发布成功时,将所述版本配置文件以灰度发布方式发布到各运营服务器120中。
图9为本发明实施例中一种服务器设备的结构示意图。如图9所示,该服务器设备可包括:处理器901、非易失性计算机可读存储器902、输入输出控制器903、网络通信接口904。这些组件通过总线905进行通信。
本实施例中,存储器902中存储有多个程序模块,例如,操作***906、网络通信模块907和应用程序908。
处理器901可以读取存储器902中的应用程序中的各种模块(图中未示出)来执行服务器设备的各种功能应用以及数据处理。本实施例中的处理器901可以为一个,也可以为多个,其可以为CPU,处理单元/模块,ASIC,逻辑模块或可编程门阵列等。
输入输出控制器903具有显示器和输入设备,用于完成相关数据的输入、输出及显示等。
操作***906包括但不限于:Android操作***、Symbian操作***、Windows操作***、Linux操作***等等。
应用程序908可包括版本管理服务器模块,该版本管理服务器模块可包括图6至图7所示装置中的各个功能模块形成的计算机可执行指令集909及对应的元数据和启发式算法910。这些计算机可执行指令集可以由所述处理器901执行并完成图2至图3所示方法或图6至图7所示装置的功能。或者,应用程序908可包括文件拉取控制服务器模块,该文件拉取控制服务器模块可包括图8所示装置中的各个功能模块形成的计算机可执行指令集909及对应的元数据和启发式算法910。这些计算机可执行指令集可以由所述处理器901执行并完成图4所示方法或图8所示装置的功能。
本实施例中,网络通信接口904与网络通信模块906相配合完成服务器设备各种网络信号的收发,包括与其它服务器或终端之间的网络数据交互等。
另外,本发明的每一个实施例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
因此本发明还提供了一种存储介质,其中存储有数据处理程序,该数据处理程序用于执行本发明上述方法的任何一种实施例。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (13)
1.一种静态文件的版本管理方法,其特征在于,包括:
为至少一个静态文件中的每个静态文件标记一个版本号,并将标记有版本号的所述静态文件作为待发布文件;
生成对应至少一个待发布文件的版本配置文件;所述版本配置文件中包括所述至少一个待发布文件各自的文件名及版本号信息;
将所述至少一个待发布文件发布到内容分发网络服务器中,并将所述版本配置文件以灰度发布方式发布到运营服务器中,以便在一运营服务器接收到来自一浏览器的浏览请求时,根据所述浏览请求读取对应的版本配置文件,将所述版本配置文件中包括的文件名及版本号信息提供给所述浏览器,以使得所述浏览器能够根据所述文件名及版本号信息从所述内容分发网络服务器中拉取对应的静态文件,并执行所拉取的静态文件。
2.根据权利要求1所述的方法,其特征在于,所述为至少一个静态文件中的每个静态文件标记一个版本号包括:
对至少一个静态文件中的每个静态文件,判断是否存储有所述静态文件的原文件,如果没有,则为所述静态文件生成一个初始的版本号;否则,判断所述静态文件相比已存储的该静态文件的原文件是否有内容更新,如果有,则根据已存储的所述原文件的版本号,为所述静态文件生成一个新的版本号,利用所述静态文件及所生成的版本号对所述原文件及其版本号进行更新;将所生成的版本号标记在所述静态文件的文件名中。
3.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
生成包含文件合并参数的文件合并配置文件;
根据所述文件合并配置文件中的文件合并参数,将不同类型的静态子文件中各相同类型的静态子文件分别合并成一个静态文件,得到至少一个静态文件。
4.根据权利要求3所述的方法,其特征在于,该方法进一步包括:对每个静态文件进行去空格/注释压缩,得到压缩后的各静态文件。
5.根据权利要求1所述的方法,其特征在于,所述将版本配置文件以灰度发布方式发布到运营服务器中之前,进一步包括:
按照所述版本配置文件中包括的至少一个待发布文件各自的文件名及版本号信息,从所述内容分发网络服务器中拉取对应的静态文件,在所述版本配置文件对应的所有静态文件均拉取成功时,确定静态资源发布成功。
6.一种静态文件的文件拉取控制方法,其特征在于,包括:
接收来自一浏览器的浏览请求;
根据所述浏览请求读取对应的版本配置文件,将所述版本配置文件中包括的文件名及版本号信息提供给所述浏览器,以便所述浏览器根据所述文件名及版本号信息从所述内容分发网络服务器中拉取对应各文件名及版本号信息的静态文件,并执行所拉取的静态文件。
7.一种静态文件的版本管理装置,其特征在于,用于一版本管理服务器,所述装置包括:版本号标记模块、版本配置文件生成模块、静态资源发布模块和版本配置文件发布模块;其中,
所述版本号标记模块用于为至少一个静态文件中的每个静态文件标记一个版本号,并将标记有版本号的所述静态文件作为待发布文件;
所述版本配置文件生成模块用于生成对应至少一个待发布文件的版本配置文件;所述版本配置文件中包括所述至少一个待发布文件各自的文件名及版本号信息;
所述静态资源发布模块用于将所述至少一个待发布文件发布到内容分发网络服务器中;
所述版本配置文件发布模块用于将所述版本配置文件以灰度发布方式发布到运营服务器中,以便在一运营服务器接收到来自一浏览器的浏览请求时,根据所述浏览请求读取对应的版本配置文件,将所述版本配置文件中包括的文件名及版本号信息提供给所述浏览器,以使得所述浏览器能够根据所述文件名及版本号信息从所述内容分发网络服务器中拉取对应的静态文件,并执行所拉取的静态文件。
8.根据权利要求7所述的装置,其特征在于,所述版本号标记模块包括:存储模块、文件内容判断模块、版本号生成模块、原文件更新模块和版本号追加模块;其中,
所述存储模块用于存储静态文件的原文件以及所述原文件的版本号;
所述文件更新判断模块用于对每个静态文件,判断所述存储模块中是否存储有所述静态文件的原文件,如果没有,则指示所述版本号生成模块为所述静态文件生成一初始的版本号;否则,判断所述静态文件相比所述原文件是否有内容更新,如果有,则指示所述版本号生成模块为所述静态文件生成一新的版本号;
所述版本号生成模块用于根据所述文件更新判断模块的指示为所述静态文件生成一初始的版本号,或根据所述存储模块中已存储的所述原文件的版本号,为所述静态文件生成一新的版本号;
所述原文件更新模块用于利用所述静态文件及所述版本号生成模块生成的版本号对所述存储模块中存储的所述静态文件的原文件及其版本号进行更新;
所述版本号追加模块用于将所述版本号生成模块生成的版本号标记在所述静态文件的文件名中,并将标记有版本号的所述静态文件作为待发布文件。
9.根据权利要求8所述的装置,其特征在于,该装置进一步包括:
文件合并配置文件生成模块,用于生成包含文件合并参数的文件合并配置文件;
文件合并模块,用于根据所述文件合并配置文件中的文件合并参数,将不同类型的静态子文件中各相同类型的静态子文件分别合并成一个静态文件,得到至少一个静态文件。
10.根据权利要求9所述的装置,其特征在于,该装置进一步包括:
文件压缩模块,用于对每个静态文件进行去空格/注释压缩,得到压缩后的各静态文件。
11.根据权利要求7所述的装置,其特征在于,该装置进一步包括:
资源发布校验模块,用于按照所述版本配置文件中包括的至少一个待发布文件各自的文件名及版本号信息,从所述内容分发网络服务器中拉取对应的静态文件,在所述版本配置文件对应的所有静态文件均拉取成功时,确定静态资源发布成功;
所述版本配置文件发布模块用于在确定静态资源发布成功时,将所述版本配置文件以灰度发布方式发布到运营服务器中。
12.一种静态文件的文件拉取控制装置,其特征在于,用于一运营服务器,所述装置包括:
接收模块,用于接收来自一浏览器的浏览请求;
配置文件读取模块,用于根据所述浏览请求读取对应的版本配置文件,并获取所述版本配置文件中包括的文件名及版本号信息;
发送模块,用于将所述文件名及版本号信息提供给所述浏览器,以便所述浏览器根据所述文件名及版本号信息从所述内容分发网络服务器中拉取对应各文件名及版本号信息的静态文件,并执行所拉取的静态文件。
13.一种静态文件的版本控制***,其特征在于,包括:一版本管理服务器、一运营服务器、一内容分发网络服务器和一包括浏览器的终端;其中,
所述版本管理服务器包括如权利要求7至11中任一项所述的浏览器静态文件的版本管理装置;
所述运营服务器包括如权利要求12所述的浏览器静态文件的文件拉取控制装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510333621.6A CN105049486B (zh) | 2015-06-16 | 2015-06-16 | 静态文件的版本管理方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510333621.6A CN105049486B (zh) | 2015-06-16 | 2015-06-16 | 静态文件的版本管理方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105049486A true CN105049486A (zh) | 2015-11-11 |
CN105049486B CN105049486B (zh) | 2019-03-26 |
Family
ID=54455689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510333621.6A Active CN105049486B (zh) | 2015-06-16 | 2015-06-16 | 静态文件的版本管理方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105049486B (zh) |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354037A (zh) * | 2015-11-30 | 2016-02-24 | 用友优普信息技术有限公司 | 模块化的软件开发方法及软件开发装置 |
CN106445488A (zh) * | 2016-07-01 | 2017-02-22 | 厦门易名科技股份有限公司 | 一种代码发布及回退的方法 |
CN106713460A (zh) * | 2016-12-26 | 2017-05-24 | 武汉斗鱼网络科技有限公司 | 一种flash应用的版本控制方法和*** |
CN106843935A (zh) * | 2016-12-29 | 2017-06-13 | 广州华多网络科技有限公司 | 一种自动更新静态文件版本号的方法及*** |
CN106959872A (zh) * | 2017-03-16 | 2017-07-18 | 微梦创科网络科技(中国)有限公司 | 应用上线方法和装置 |
CN107102992A (zh) * | 2016-02-19 | 2017-08-29 | 北大方正集团有限公司 | 一种新媒体静态发布方法及装置 |
CN107229655A (zh) * | 2016-03-25 | 2017-10-03 | 北京京东尚科信息技术有限公司 | 页面静态文件的更新方法、装置及*** |
CN107241451A (zh) * | 2017-08-04 | 2017-10-10 | 网宿科技股份有限公司 | 基于内容分发网络的篡改干预方法、装置及*** |
CN107343031A (zh) * | 2017-06-21 | 2017-11-10 | 福建中金在线信息科技有限公司 | 一种自动更新文件的方法、装置、电子设备及存储介质 |
CN107357890A (zh) * | 2017-07-12 | 2017-11-17 | 腾讯科技(深圳)有限公司 | 一种网页文件处理方法、装置及***和存储设备 |
CN107370791A (zh) * | 2017-06-23 | 2017-11-21 | 微梦创科网络科技(中国)有限公司 | 自动同步更新内容分发网络中文件名的方法及*** |
CN107465707A (zh) * | 2016-06-03 | 2017-12-12 | 阿里巴巴集团控股有限公司 | 一种内容分发网络的内容刷新方法及装置 |
CN107678936A (zh) * | 2017-06-25 | 2018-02-09 | 平安科技(深圳)有限公司 | 业务***预先稽查方法、服务器及计算机可读存储介质 |
CN107704465A (zh) * | 2016-08-08 | 2018-02-16 | 腾讯科技(深圳)有限公司 | 静态资源更新方法以及静态资源管理*** |
CN108052334A (zh) * | 2017-12-22 | 2018-05-18 | 平安养老保险股份有限公司 | 页面跳转方法、装置、计算机设备和存储介质 |
CN108153663A (zh) * | 2016-12-02 | 2018-06-12 | 阿里巴巴集团控股有限公司 | 页面数据处理方法及装置 |
CN109002557A (zh) * | 2018-08-15 | 2018-12-14 | 深圳点猫科技有限公司 | 基于浏览器缓存机制优化网页加载速度的方法、电子设备 |
CN109358895A (zh) * | 2017-12-28 | 2019-02-19 | 广州Tcl智能家居科技有限公司 | 一种hxml的部署方法、存储介质及应用服务器 |
CN109542988A (zh) * | 2018-10-19 | 2019-03-29 | 深圳点猫科技有限公司 | 一种大数据的更新方法及电子设备 |
CN110399341A (zh) * | 2019-07-06 | 2019-11-01 | 深圳市山水原创动漫文化有限公司 | 一种动画参考文件存储和调用的方法及其*** |
CN110809036A (zh) * | 2019-10-25 | 2020-02-18 | 无线生活(北京)信息技术有限公司 | 资源更新方法及装置 |
CN111338824A (zh) * | 2020-02-27 | 2020-06-26 | 中国联合网络通信集团有限公司 | 灰度发布方法、装置、电子设备及存储介质 |
CN112541147A (zh) * | 2019-09-23 | 2021-03-23 | 北京轻享科技有限公司 | 一种内容发布管理方法及*** |
CN113377400A (zh) * | 2021-06-16 | 2021-09-10 | 广州博冠信息科技有限公司 | 软件升级方法、装置、存储介质及电子设备 |
TWI757733B (zh) * | 2020-05-05 | 2022-03-11 | 華碩電腦股份有限公司 | 網路資料收集方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102109989A (zh) * | 2009-12-29 | 2011-06-29 | 阿里巴巴集团控股有限公司 | 一种控制浏览器缓存的方法、装置和*** |
CN102480397A (zh) * | 2010-11-26 | 2012-05-30 | 金蝶软件(中国)有限公司 | 访问互联网页面的方法及设备 |
CN104038520A (zh) * | 2013-03-05 | 2014-09-10 | 北京畅游天下网络技术有限公司 | 一种多版本分布式资源管理方法和*** |
CN104462469A (zh) * | 2014-12-17 | 2015-03-25 | 小米科技有限责任公司 | 网站静态文件的更新方法和装置 |
-
2015
- 2015-06-16 CN CN201510333621.6A patent/CN105049486B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102109989A (zh) * | 2009-12-29 | 2011-06-29 | 阿里巴巴集团控股有限公司 | 一种控制浏览器缓存的方法、装置和*** |
CN102480397A (zh) * | 2010-11-26 | 2012-05-30 | 金蝶软件(中国)有限公司 | 访问互联网页面的方法及设备 |
CN104038520A (zh) * | 2013-03-05 | 2014-09-10 | 北京畅游天下网络技术有限公司 | 一种多版本分布式资源管理方法和*** |
CN104462469A (zh) * | 2014-12-17 | 2015-03-25 | 小米科技有限责任公司 | 网站静态文件的更新方法和装置 |
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354037B (zh) * | 2015-11-30 | 2019-04-16 | 用友优普信息技术有限公司 | 模块化的软件开发方法及软件开发装置 |
CN105354037A (zh) * | 2015-11-30 | 2016-02-24 | 用友优普信息技术有限公司 | 模块化的软件开发方法及软件开发装置 |
CN107102992A (zh) * | 2016-02-19 | 2017-08-29 | 北大方正集团有限公司 | 一种新媒体静态发布方法及装置 |
CN107229655B (zh) * | 2016-03-25 | 2021-05-25 | 北京京东尚科信息技术有限公司 | 页面静态文件的更新方法、装置及*** |
CN107229655A (zh) * | 2016-03-25 | 2017-10-03 | 北京京东尚科信息技术有限公司 | 页面静态文件的更新方法、装置及*** |
CN107465707A (zh) * | 2016-06-03 | 2017-12-12 | 阿里巴巴集团控股有限公司 | 一种内容分发网络的内容刷新方法及装置 |
CN107465707B (zh) * | 2016-06-03 | 2021-02-02 | 阿里巴巴集团控股有限公司 | 一种内容分发网络的内容刷新方法及装置 |
CN106445488A (zh) * | 2016-07-01 | 2017-02-22 | 厦门易名科技股份有限公司 | 一种代码发布及回退的方法 |
CN107704465B (zh) * | 2016-08-08 | 2021-11-16 | 腾讯科技(深圳)有限公司 | 静态资源更新方法以及静态资源管理*** |
CN107704465A (zh) * | 2016-08-08 | 2018-02-16 | 腾讯科技(深圳)有限公司 | 静态资源更新方法以及静态资源管理*** |
CN108153663A (zh) * | 2016-12-02 | 2018-06-12 | 阿里巴巴集团控股有限公司 | 页面数据处理方法及装置 |
CN108153663B (zh) * | 2016-12-02 | 2022-02-18 | 阿里巴巴集团控股有限公司 | 页面数据处理方法及装置 |
WO2018120436A1 (zh) * | 2016-12-26 | 2018-07-05 | 武汉斗鱼网络科技有限公司 | 一种flash应用的版本控制方法和*** |
CN106713460A (zh) * | 2016-12-26 | 2017-05-24 | 武汉斗鱼网络科技有限公司 | 一种flash应用的版本控制方法和*** |
CN106713460B (zh) * | 2016-12-26 | 2019-12-10 | 武汉斗鱼网络科技有限公司 | 一种flash应用的版本控制方法和*** |
CN106843935A (zh) * | 2016-12-29 | 2017-06-13 | 广州华多网络科技有限公司 | 一种自动更新静态文件版本号的方法及*** |
CN106959872A (zh) * | 2017-03-16 | 2017-07-18 | 微梦创科网络科技(中国)有限公司 | 应用上线方法和装置 |
CN107343031A (zh) * | 2017-06-21 | 2017-11-10 | 福建中金在线信息科技有限公司 | 一种自动更新文件的方法、装置、电子设备及存储介质 |
CN107370791A (zh) * | 2017-06-23 | 2017-11-21 | 微梦创科网络科技(中国)有限公司 | 自动同步更新内容分发网络中文件名的方法及*** |
CN107678936A (zh) * | 2017-06-25 | 2018-02-09 | 平安科技(深圳)有限公司 | 业务***预先稽查方法、服务器及计算机可读存储介质 |
WO2019000963A1 (zh) * | 2017-06-25 | 2019-01-03 | 平安科技(深圳)有限公司 | 业务***预先稽查方法、服务器及计算机可读存储介质 |
CN107357890A (zh) * | 2017-07-12 | 2017-11-17 | 腾讯科技(深圳)有限公司 | 一种网页文件处理方法、装置及***和存储设备 |
CN107357890B (zh) * | 2017-07-12 | 2023-03-24 | 腾讯科技(深圳)有限公司 | 一种网页文件处理方法、装置及***和存储设备 |
CN107241451A (zh) * | 2017-08-04 | 2017-10-10 | 网宿科技股份有限公司 | 基于内容分发网络的篡改干预方法、装置及*** |
CN108052334A (zh) * | 2017-12-22 | 2018-05-18 | 平安养老保险股份有限公司 | 页面跳转方法、装置、计算机设备和存储介质 |
CN109358895A (zh) * | 2017-12-28 | 2019-02-19 | 广州Tcl智能家居科技有限公司 | 一种hxml的部署方法、存储介质及应用服务器 |
CN109002557A (zh) * | 2018-08-15 | 2018-12-14 | 深圳点猫科技有限公司 | 基于浏览器缓存机制优化网页加载速度的方法、电子设备 |
CN109542988A (zh) * | 2018-10-19 | 2019-03-29 | 深圳点猫科技有限公司 | 一种大数据的更新方法及电子设备 |
CN110399341A (zh) * | 2019-07-06 | 2019-11-01 | 深圳市山水原创动漫文化有限公司 | 一种动画参考文件存储和调用的方法及其*** |
CN110399341B (zh) * | 2019-07-06 | 2022-12-06 | 深圳市山水原创动漫文化有限公司 | 一种动画参考文件存储和调用的方法及其*** |
CN112541147A (zh) * | 2019-09-23 | 2021-03-23 | 北京轻享科技有限公司 | 一种内容发布管理方法及*** |
CN110809036A (zh) * | 2019-10-25 | 2020-02-18 | 无线生活(北京)信息技术有限公司 | 资源更新方法及装置 |
CN111338824A (zh) * | 2020-02-27 | 2020-06-26 | 中国联合网络通信集团有限公司 | 灰度发布方法、装置、电子设备及存储介质 |
CN111338824B (zh) * | 2020-02-27 | 2023-08-15 | 中国联合网络通信集团有限公司 | 灰度发布方法、装置、电子设备及存储介质 |
TWI757733B (zh) * | 2020-05-05 | 2022-03-11 | 華碩電腦股份有限公司 | 網路資料收集方法 |
CN113377400A (zh) * | 2021-06-16 | 2021-09-10 | 广州博冠信息科技有限公司 | 软件升级方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105049486B (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105049486A (zh) | 静态文件的版本管理、文件拉取控制方法、装置及*** | |
CN107870728B (zh) | 用于移动数据的方法和设备 | |
US11563674B2 (en) | Content based routing method and apparatus | |
US10474632B2 (en) | Segmented hashing for secure data modification | |
US9569400B2 (en) | RDMA-optimized high-performance distributed cache | |
CN108228818A (zh) | 网页资源加载方法及装置、电子设备、以及存储介质 | |
KR20140001172A (ko) | 애플리케이션을 업데이트하는 방법 | |
CN104182294A (zh) | 一种文件备份、文件恢复方法及装置 | |
US7376650B1 (en) | Method and system for redirecting a request using redirection patterns | |
CN103257958B (zh) | 一种基于云存储的翻译方法及*** | |
CN106921682A (zh) | 文件上传方法和装置 | |
CN111459511A (zh) | 应用程序的下载方法、装置及电子设备 | |
CN105740330A (zh) | 分页展示数据的方法及装置 | |
CN108268609A (zh) | 一种文件路径的建立、访问方法和装置 | |
CN105160018A (zh) | 一种复制/粘贴图片的方法、装置和*** | |
CN112395253A (zh) | 索引文件生成方法、终端设备、电子设备及介质 | |
US11138287B1 (en) | System for reducing size of transmitted content | |
US10365910B2 (en) | Systems and methods for uninstalling or upgrading software if package cache is removed or corrupted | |
CN111724133A (zh) | 一种创建项目的方法及装置 | |
CN110674084A (zh) | 用于数据保护的方法、设备和计算机可读存储介质 | |
CN111107133A (zh) | 差异包的生成方法、数据更新方法、装置和存储介质 | |
CN106156291A (zh) | 基于Localstroage的静态资源的缓存方法及其*** | |
CN106569841B (zh) | 一种文件加载方法和装置 | |
US20140331117A1 (en) | Application-based dependency graph | |
CN103139298A (zh) | 一种传输网络数据的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |