CN117435829A - 一种目录预热方法及装置 - Google Patents
一种目录预热方法及装置 Download PDFInfo
- Publication number
- CN117435829A CN117435829A CN202311772933.8A CN202311772933A CN117435829A CN 117435829 A CN117435829 A CN 117435829A CN 202311772933 A CN202311772933 A CN 202311772933A CN 117435829 A CN117435829 A CN 117435829A
- Authority
- CN
- China
- Prior art keywords
- function
- preheating
- url
- target directory
- directory
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000006870 function Effects 0.000 claims description 240
- 238000012795 verification Methods 0.000 claims description 18
- 244000035744 Hura crepitans Species 0.000 claims description 5
- 239000000758 substrate Substances 0.000 claims 5
- 230000008569 process Effects 0.000 description 12
- 230000002159 abnormal effect Effects 0.000 description 7
- 238000012360 testing method Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- 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
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供一种目录预热方法及装置。该方法可以包括:接收预热函数,所述预热函数,包括:待预热的目标目录中的URL的生成逻辑;根据接收到的目录预热请求,获取所述预热函数和所述目标目录;基于所述目标目录和所述URL的生成逻辑,获取所述目标目录中的URL,缓存所述目标目录中的URL的资源。
Description
技术领域
本说明书涉及网络通信技术领域,尤其涉及一种目录预热方法及装置。
背景技术
CDN(Content Delivery Network,内容分发网络)是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容。
CDN通常采取多级缓存架构,边缘节点为L1节点,数据中心节点为L2节点。L1节点直连用户,L1和L2节点之间铺设专线,L2节点直连源站。当用户请求资源时,当L1节点有缓存资源时,会命中该资源,直接将数据返回给用户。当L1节点无缓存资源时,会向L2节点请求对应资源,如果L2节点有缓存资源,则将资源同步到L1节点,并返回给用户;如果L2节点无缓存资源,则直接回源站获取资源,将资源缓存至L1节点和L2节点,并返回给用户。
CDN的预热功能是模拟用户请求源站,将源站的资源主动缓存到L2节点上,用户首次访问资源可直接命中L2节点中的缓存资源,无需再次请求源站,缓解源站压力。
目前,由于需要预热的资源一般是新资源,这些资源在CDN厂商的节点上没有历史记录,CDN厂商无法感知未知资源的目录结构,因此,预热方式不支持提交目录预热,只支持通过URL(Uniform Resource Locator,统一资源定位符)进行预热。但是,URL预热方式需要客户手动输入所有需要预热的URL,预热配置复杂,当URL发生变化时,还需要手动修改已配置的URL,再次缓存源站资源,预热效率较低。
发明内容
为克服相关技术中存在的问题,本说明书提供了一种目录预热方法及装置。
在本说明书任一实施例的第一方面,提供了一种目录预热方法,所述方法包括:
接收预热函数,所述预热函数,包括:待预热的目标目录中的URL的生成逻辑;
根据接收到的目录预热请求,获取所述预热函数和所述目标目录;
基于所述目标目录和所述URL的生成逻辑,获取所述目标目录中的URL,缓存所述目标目录中的URL的资源。
在本说明书任一实施例的第二方面,提供了一种目录预热装置,所述装置包括:
函数接收模块,用于接收预热函数,所述预热函数,包括:待预热的目标目录中的URL的生成逻辑;
目录获取模块,用于根据接收到的目录预热请求,获取所述预热函数和所述目标目录;
资源缓存模块,用于基于所述目标目录和所述URL的生成逻辑,获取所述目标目录中的URL,缓存所述目标目录中的URL的资源。
根据本说明书任一实施例的第三方面,提供了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现本说明书任一实施例中所述的方法。
根据本说明书任一实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述本说明书任一实施例中所述方法的步骤。
本说明书的实施例提供的技术方案可以包括以下有益效果:
根据上述实施例可知,通过接收预热函数,可以得到待预热的目标目录中的URL的生成逻辑,根据接收到的目录预热请求,获取预热函数和目标目录,基于目标目录和URL的生成逻辑,获取目标目录中的URL,缓存目标目录中的URL的资源,实现目录预热,客户只需配置预热函数和目录预热请求,无需获取客户手动配置的预热所需的全部URL,从而简化预热配置;由于目标目录中的URL是根据生成逻辑获取到的,当URL发生变化时,无需修改URL,避免针对修改的URL再次缓存资源进行预热,从而提升预热效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本说明书根据一示例性实施例示出的一种目录预热方法的流程图;
图2是本说明书根据一示例性实施例示出的一种预热函数接收方法的流程图;
图3是本说明书根据一示例性实施例示出的一种预热函数校验方法的流程图;
图4是本说明书根据一示例性实施例示出的一种目录预热请求执行方法的流程图;
图5是本说明书根据一示例性实施例示出的一种电子设备的结构示意图;
图6是本说明书根据一示例性实施例示出的一种目录预热装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
CDN是通过在网络各处部署节点服务器,将源站的资源发布到最接近用户的网络节点,使得用户在请求时直接访问到就近的CDN节点并命中该资源。
目前,CDN预热只支持URL预热方式,客户手动输入需要预热的全部URL,预热配置复杂,当URL发生变化时,还需要手动修改已配置的URL,再次缓存源站资源,预热效率较低。
为了解决上述的问题,本说明书实施例提出一种目录预热方法。为对本说明书进行进一步说明,提供下列实施例:
请参阅图1,图1是本说明书根据一示例性实施例示出的一种目录预热方法的流程图。该目录预热方法可以应用于CDN厂商提供的CDN后台,CDN后台用于为CDN提供管理和运营支撑,CDN后台包括但不限于:CDN控制台、Parser校验器、CDN预热服务、存储系统、边缘节点(L1节点)、数据中心节点(L2节点)等模块。
其中,CDN控制台可以提供给使用CDN的客户可视化界面,接收和处理客户提交的信息;校验器可以用于客户提交的数据的安全性;CDN预热服务可以用于进行预热处理;存储系统可以用于存储客户提交的信息,该信息可以存储于数据库、存储文件等。
该目录预热方法可以包括如下步骤:
步骤102:接收预热函数,所述预热函数,包括:待预热的目标目录中的URL的生成逻辑。
本步骤中,客户可以根据待预热的目标目录中的URL的生成逻辑,通过CDN控制台中的界面输入并提交预热函数,CDN后台可以接收客户输入的预热函数。
其中,目标目录是包含待预热的资源的目录,待预热的资源包括但不限于目标目录中的URL对应的图片、视频等,目标目录可以以URL形式表示,例如,http://www.hello.com/dir1/,http://www.hello.com/dir2/等。
预热函数是客户根据待预热的目标目录中的URL的生成逻辑填写的,客户可以输入一个或多个预热函数进行提交,预热函数中可以包括目标目录中的URL的一种或多种生成逻辑。
URL的生成逻辑是实际业务场景中URL命令的生成规律。URL的生成逻辑,例如,可以是获取接口进行字符拼接,还可以是获取接口添加MD5后缀,本说明书实施例对此不做限制。
URL的生成逻辑可以以代码形式进行描述,客户可以使用lua、python等语言进行编写预热函数。以lua语言为例,预热函数以及URL的生成逻辑的示例如下:
---@param root string待预热的目标目录
---@return table
local function walk(root)
--若干个URL可以从接口A获取原始URL,动态拼接hello$d.jpg生成的
--假设返回结果即为待预热的目标目录中的URL数组
local res = request.get("A")
for i = 1, 100, 1 do
table.insert(res, root .. "/hello" .. i .. "jpg")
end
--若干个URL做了安全处理,可以从接口B获取原始URL,加上一个MD5生成的后缀
--假设返回结果即为待预热的目标目录中的URL数组
local body = request.get("B")
for _, value in ipairs(body) do
local fileName = extract_filename_from_url(value)
local preheat_url = root .. "/" .. ngx.md5(filename+"secret-key") ..".png"
table.insert(res, preheat_url)
end
return res
end
其中,walk为预热函数的函数名,root为待预热的目标目录,return res为返回结果,即,目标目录中的一个或多个URL组成的数组。预热函数中包括两种生成逻辑:在从接口A获取的原始URL后,拼接“/hello”、“i”和“jpg”,“i”为1至100的常数;在从接口B获取的原始URL后,增加MD5生成的后缀。
可以理解的是,本说明书实施例示出的预热函数以及URL的生成逻辑,只是一种示例,也可以采用其他的预热函数以及URL的生成逻辑,只要能够实现本说明书实施例所述的方法即可,本说明书实施例对此不做限制。
步骤104:根据接收到的目录预热请求,获取所述预热函数和所述目标目录。
本步骤中,客户可以根据步骤102中输入的预热函数和待预热的目标目录,通过CDN控制台中的界面输入并提交目录预热请求。其中,目录预热请求是客户指定待预热的目标目录和预热函数的请求,目录预热请求中可以包括但不限于:预热函数的函数标识和目标目录。
函数标识可以用于确定函数标识对应的预热函数,示例性的,可以为预热函数的函数名,还可以为接收预热函数时生成的函数ID。
客户在提交目录预热请求时,可以在CDN控制台中输入一个或多个目录预热请求,多个目录预热请求中的函数标识可以为相同的函数标识,也可以是多个不同的函数标识。多个目录预热请求可以分成多行输入,在每行的目录预热请求后可以添加分隔符,分隔符用于分隔多个目录预热请求,分隔符可以为预设的字符,例如,“\n”、“\t”等。
函数标识以函数名为例,多行输入的多个目录预热请求的示例如下:
walk(“http://www.hello.com/dir1/”) \n
walk(“http://www.hello.com/dir2/”) \n
walk2(“http://www.hello.com/dir3/”) \n
其中,目录预热请求的格式为func(root),func为函数名,root为待预热的目标目录。第一行输入的目录预热请求的函数名为walk,目标目录为“http://www.hello.com/dir1/”;第二行输入的目录预热请求的函数名为walk,目标目录为“http://www.hello.com/dir2/”;第三行输入的目录预热请求的函数名为walk2,walk2可以为客户根据实际业务场景提交的另一个预热函数,目标目录为http://www.hello.com/dir3/。
CDN后台可以接收客户提交的目录预热请求,根据接收到的目录预热请求,获取目录预热请求中的目标目录和函数标识。根据函数标识,获取函数标识对应的预热函数,即,步骤102中接收的预热函数。
步骤106:基于所述目标目录和所述URL的生成逻辑,获取所述目标目录中的URL,缓存所述目标目录中的URL的资源。
本步骤中,CDN后台可以将目标目录作为预热函数的入参,根据预热函数中的URL的生成逻辑,获取目标目录中的URL,可以将目标目录中的URL以键值对的格式存储于存储系统。
CDN后台可以根据存储系统中的URL,访问URL的源站,获取目标目录中的URL的资源。CDN预热服务可以根据客户的IP所属的地理位置或者网络信息,获取距离客户最近的数据中心节点,将目标目录中的URL的资源缓存至与数据中心节点,以实现用户在使用电脑、手机等终端设备访问目标目录中的URL的资源时,直接访问数据中心节点中的缓存资源。
本实施例的目录预热方法,通过接收预热函数,可以得到待预热的目标目录中的URL的生成逻辑,根据接收到的目录预热请求,获取预热函数和目标目录,基于目标目录和URL的生成逻辑,获取目标目录中的URL,缓存目标目录中的URL的资源,实现目录预热,客户只需配置预热函数和目录预热请求,无需获取客户手动配置的预热所需的全部URL,从而简化预热配置。
同时,由于目标目录中的URL是根据生成逻辑获取到的,对目标目录进行预热,可以缓存目标目录中的URL对应的资源,即使URL发生变化,也无需客户修改URL,避免重复缓存URL对应的资源,从而提升预热效率。
在上述的实施例中,描述了接收客户输入并提交的预热函数。在下面的实施例中,将对如何接收预热函数,进行更详细的说明,并可以适用于如上的任一实施例。
请参阅图2,图2示出了一种预热函数接收方法的流程图。如图2所示,该方法可以包括如下步骤:
步骤202:提供预热函数模板。
本步骤中,CDN控制台可以在界面中提供预设的预热函数模板,预热函数模板用于规定和提示预热函数中的填写规范,可以使用lua、python等语言预设预热函数模板。
以lua语言为例,预热函数模板的示例如下:
---@param root string @待预热的目标目录
---@return string[] @函数返回值是待预热的URL构成的数组
local function walk(root)
--函数体由客户填充待预热的目标目录的URL路径的生成逻辑
local all = {}
for i = 1, 10 do
all[i] = root.. I .."jpg"
end
return all
end
其中,walk为预热函数模板的函数名,root为待预热的目标目录,return all为待预热的URL构成的数组,中间的函数体可以由客户根据待预热的目标目录的URL路径的生成逻辑进行填充。
可以理解的是,本说明书实施例示出的预热函数模板,只是一种示例,也可以采用其他的预热函数模板,只要能够实现本说明书实施例所述的方法即可,本说明书实施例对此不做限制。
步骤204:接收预热函数。
本步骤中,客户基于预热函数模板和目标目录中的URL的生成逻辑,填充预热函数,CDN控制台可以接收客户填充的预热函数。
如上所述的,通过提供预热函数模板,可以便于客户根据预热函数模板,填充目标目录中的URL的生成逻辑,提高接收到的预热函数的正确率。
步骤206:根据函数校验规则集,对预热函数进行校验。
本步骤中,Parser校验器可以根据预先配置的函数校验规则集,对预热函数进行校验,在预热函数符合函数校验规则集中的函数校验规则的情况下,接收预热函数。
其中,函数校验规则集可以由CDN后台在CDN控制台结合实际业务进行动态配置。Parser校验器可以使用lua语言静态校验工具Uyun-luacheck,基于函数校验规则集中的函数校验规则,对预热函数进行校验,校验预热函数的安全性和合法性。
Parser校验器的校验公式为,其中,/>为函数校验规则,/>的默认值是1,当预热函数符合函数校验规则集中的全部函数校验规则时,f(x) 值为1,通过校验;当预热函数不符合/>函数校验规则时,/>=0, f(x) 值为0,未通过校验,CDN控制台可以通知客户对预热函数进行修改。
基于上述实施例示例的预热函数,函数校验规则集中的函数校验规则的示例如下:
函数校验规则为校验预热函数中的入参是否不为空,且入参的数据类型为string。若入参不为空且数据类型为string,则/>=1,否则,/>=0。
函数校验规则为校验预热函数中由待预热目录的URL的生成逻辑构成的函数体是否不为空。若函数体不为空,则/>=1,否则,/>=0。
函数校验规则为校验预热函数中的函数返回值的数据类型是否为数组,且数组长度小于等于可配置的数组长度固定值L,数组长度固定值L可以用于限制待预热的目标目录中URL的数量。若函数返回值的数据类型为数组且数组长度小于等于数组长度固定值L,则/>=1,否则,/>=0。
函数校验规则为校验函数体中是否存在死循环、死锁等可能导致代码无法退出的异常情况。若函数体中不存在异常情况,则/>=1,否则,/>=0。
函数校验规则为校验函数体中是否存在不安全的引用,不安全的引用可以为恶意执行删除、死循环等命令。若函数体中不存在不安全的引用,则/>=1,否则,/>0。
请参阅图3,图3示出了一种预热函数校验方法的流程图。该方法可以包括如下步骤:
步骤302:输出预热函数的AST(Abstract Syntax Tree,抽象语法树)。
本步骤中,Parser校验器可以对CDN后台输入的预热函数进行词法分析和语法分析,输出预热函数的AST。在此过程中如果有异常则中断后续流程,转进到Bug收集器中,Bug收集器报告Bug并输出检验结果,CDN后台的开发人员可以根据Bug和检验结果,查找和修复异常问题。
步骤304:将AST转为IR(Intermediate Representation,中间代码)。
本步骤中,Parser校验器可以对AST进行类型检查和规范化,将AST转换成IR。在此过程中如果有异常则中断后续流程,转进到Bug收集器中,报告Bug并输出检验结果。
步骤306:将IR转为CFG(Control Flow Graph,控制流图)。
本步骤中,Parser校验器可以将IR进行数据流分析和漏洞检测,将IR转为CFG,CFG是一种用来表示程序代码执行流程的图形数据结构,可以追踪预热函数的执行和数据流。在此过程中如果有异常则中断后续流程,转进到Bug收集器中,报告Bug并输出检验结果。
步骤308:将CFG输入到Parser校验规则集中。
本步骤中,Parser校验器可以将CFG输入到Parser校验器中的Parser校验规则集模块,Parser校验规则集模块从图分析、闭包分析和值分析三个维度,对CFG进行校验,Parser校验规则集模块用于基于函数校验规则集中的函数校验规则对CFG进行校验。在此过程中如果有异常则中断后续流程,转进到Bug收集器中,报告Bug并输出检验结果;若通过校验,则说明预热函数合法,静默输出。
如上所述的,通过对预热函数进行校验,接收符合函数校验规则集中的函数校验规则的预热函数,可以确保预热函数的合法性,提高预热函数的安全性。
步骤208:校验预热函数的唯一标识。
本步骤中,在Parser校验器对预热函数校验通过后,CDN后台可以根据预热函数,生成预热函数的唯一标识。唯一标识用于确保预热函数的唯一性,可以包括:客户信息和预热函数的函数标识。
其中,客户信息用于标识填写预热函数的客户,可以为客户的用户ID、唯一的用户名等,预热函数的函数标识为上述实施例中提交目录预热请求中的预热函数的函数标识。
CDN后台可以校验该预热函数的唯一标识与已存储预热函数的唯一标识是否相同,已存储预热函数为存储系统中已经存储的预热函数。若该预热函数的唯一标识与已存储预热函数的唯一标识相同,说明该客户存储过与该预热函数的函数标识相同的预热函数,再次存储预热函数时会存在冲突。
CDN后台可以提示客户取消此次操作或覆盖之前存储的内容。若客户选择覆盖,CDN后台不会存储该预热函数;若客户选择覆盖,CDN后台可以将该预热函数中的函数名、入参、函数体等内容,覆盖至已存储预热函数。
如上所述的,通过当唯一标识与已存储预热函数的唯一标识相同时,将预热函数中的内容覆盖至已存储的预热函数,从而修改已存储预热函数中的内容。
步骤210:存储预热函数。
本步骤中,若该预热函数的唯一标识与已存储预热函数的唯一标识不同,CDN后台可以将该预热函数以键值对形式存储至存储系统。
如上所述的,通过在生成的唯一标识中包括:客户信息和预热函数的函数标识,当唯一标识与已存储预热函数的唯一标识不同时,存储预热函数,避免同一客户存储多个函数标识相同的预热函数,确保客户提交的每个预热函数的唯一性,保证根据目录预热请求中的函数标识获取的URL的可靠性。
在上述的实施例中,描述了接收客户输入并提交的目录预热请求。在下面的实施例中,将对如何执行目录预热请求,进行更详细的说明,并可以适用于如上的任一实施例。
请参阅图4,图4示出了一种目录预热请求执行方法的流程图,如图4所示,该方法可以包括如下步骤:
步骤402:接收目录预热请求。
本步骤中,CDN控制台可以接收客户提交的目录预热请求,根据接收到的目录预热请求,获取目标目录和目标目录中的URL。
步骤404:校验目标目录和目标目录中的URL。
本步骤中,CDN后台可以根据预先配置的请求校验规则对目标目录和目标目录中的URL进行校验。
请求校验规则是CDN后台预先配置的校验目标目录和目标目录中的URL的安全性的规则,可以包括:目标目录中的URL已存储于存储系统,以及,目标目录符合HTTP协议中URL的相关规则等。其中,HTTP协议中URL的相关规则,例如,以"http://"开头,后面连接域名或IP地址,再加上可选的端口号、路径和查询参数等。
若目标目录和目标目录中的URL存在一条不符合请求校验规则中的规则,CDN后台可以通知客户修改目录预热请求,重新执行步骤402接收客户修改后的目录预热请求。
步骤406:执行目录预热请求。
本步骤中,在目标目录和目标目录中的URL符合请求校验规则中的全部规则的情况下,执行目录预热请求,缓存目标目录中的URL的资源。
如上所述的,通过对目标目录和所述目标目录中的URL进行校验,在目标目录和目标目录中的URL符合预先配置的请求校验规则的情况下,缓存目标目录中的URL的资源,能够提高目录预热的安全性。
进一步的,CDN后台可以根据客户IP所属的地理位置或者网络信息,获取距离客户最近的数据中心节点,在该数据中心节点的沙箱环境中,执行目录预热请求,缓存目标目录中的URL的资源。
其中,数据中心节点的沙箱环境用于隔离和限制执行目录预热请求所需的资源,该沙箱环境可以是基于Linux namespace和cgroup,使用lua语言进行创建的lua沙箱环境。执行目录预热请求所需的资源为程序使用资源,可以包括:内存、网络资源、设备资源等。
在执行目录预热请求期间,若程序使用资源超过预设配额,强制终止目录预热请求。CDN后台的开发人员可以通过CDN后台中的日志,查找和修复异常问题。
步骤408:进行目录预热。
本步骤中,若目录预热请求执行成功,CDN后台可以将获取到目标目录中的URL的资源,转发到CDN预热服务,CDN预热服务将目标目录中的URL的资源缓存至与获取距离客户最近的数据中心节点,进行目录预热。
如上所述的,通过在数据中心节点的沙箱环境中,缓存目标目录中的URL的资源,可以实现执行目录预热请求所需资源的隔离和限制,提高目录预热的安全性。
图5是根据本说明书一示例性实施例示出的一种电子设备的结构示意图。参考图5,在硬件层面,该电子设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他业务所需要的硬件。处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行,在逻辑层面上形成目录预热装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
图6是本说明书根据一示例性实施例示出的一种目录预热装置的框图。参照图6,该装置可以包括:函数接收模块602、目录获取模块604和资源缓存模块606,其中:
所述函数接收模块602,用于接收预热函数,所述预热函数,包括:待预热的目标目录中的URL的生成逻辑。
所述目录获取模块604,用于根据接收到的目录预热请求,获取所述预热函数和所述目标目录。
所述资源缓存模块606,用于基于所述目标目录和所述URL的生成逻辑,获取所述目标目录中的URL,缓存所述目标目录中的URL的资源。
在一个例子中,所述函数接收模块602,在用于接收预热函数时,包括:提供预设的预热函数模板;接收基于所述预热函数模板填充的所述预热函数。
在一个例子中,所述函数接收模块602,在用于接收预热函数时,包括:根据预先配置的函数校验规则集,对预热函数进行校验;在所述预热函数符合所述函数校验规则集中的函数校验规则的情况下,接收所述预热函数。
在一个例子中,所述函数接收模块602,在用于接收预热函数时,包括:根据预热函数,生成所述预热函数的唯一标识,所述唯一标识,包括:客户信息和所述预热函数的函数标识,所述客户信息用于标识填写所述预热函数的客户;若所述唯一标识与已存储预热函数的唯一标识不同,存储所述预热函数。
在一个例子中,所述函数接收模块602,在用于根据接收到的所述目录预热请求,获取所述预热函数和所述目标目录之前,还包括:若所述唯一标识与已存储预热函数的唯一标识相同,将所述预热函数中的内容,覆盖至所述已存储预热函数。
在一个例子中,所述资源缓存模块606,在用于缓存所述目标目录中的URL的资源时,包括:在所述目标目录和所述目标目录中的URL符合预先配置的请求校验规则的情况下,缓存所述目标目录中的URL的资源。
在一个例子中,所述资源缓存模块606,在用于缓存所述目标目录中的URL的资源时,包括:在数据中心节点的沙箱环境中,缓存所述目标目录中的URL的资源,所述数据中心节点的沙箱环境用于隔离执行所述目录预热请求所需的资源。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由目录预热装置的处理器执行以实现如上述实施例中任一所述的方法。
其中,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等,本申请并不对此进行限制。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (10)
1.一种目录预热方法,其特征在于,所述方法包括:
接收预热函数,所述预热函数,包括:待预热的目标目录中的URL的生成逻辑;
根据接收到的目录预热请求,获取所述预热函数和所述目标目录;
基于所述目标目录和所述URL的生成逻辑,获取所述目标目录中的URL,缓存所述目标目录中的URL的资源。
2.根据权利要求1所述的方法,其特征在于,
所述接收预热函数,包括:
提供预设的预热函数模板;
接收基于所述预热函数模板填充的所述预热函数。
3.根据权利要求1所述的方法,其特征在于,
所述接收预热函数,包括:
根据预先配置的函数校验规则集,对预热函数进行校验;
在所述预热函数符合所述函数校验规则集中的函数校验规则的情况下,接收所述预热函数。
4.根据权利要求1所述的方法,其特征在于,
所述接收预热函数,包括:
根据预热函数,生成所述预热函数的唯一标识,所述唯一标识,包括:客户信息和所述预热函数的函数标识,所述客户信息用于标识填写所述预热函数的客户;
若所述唯一标识与已存储预热函数的唯一标识不同,存储所述预热函数。
5.根据权利要求4所述的方法,其特征在于,
在所述根据接收到的所述目录预热请求,获取所述预热函数和所述目标目录之前,还包括:
若所述唯一标识与所述已存储预热函数的唯一标识相同,将所述预热函数中的内容,覆盖至所述已存储预热函数。
6.根据权利要求1所述的方法,其特征在于,
所述缓存所述目标目录中的URL的资源,包括:
在所述目标目录和所述目标目录中的URL符合预先配置的请求校验规则的情况下,缓存所述目标目录中的URL的资源。
7.根据权利要求1所述的方法,其特征在于,
所述缓存所述目标目录中的URL的资源,包括:
在数据中心节点的沙箱环境中,缓存所述目标目录中的URL的资源,所述数据中心节点的沙箱环境用于隔离执行所述目录预热请求所需的资源。
8.一种目录预热装置,其特征在于,所述装置包括:
函数接收模块,用于接收预热函数,所述预热函数,包括:待预热的目标目录中的URL的生成逻辑;
目录获取模块,用于根据接收到的目录预热请求,获取所述预热函数和所述目标目录;
资源缓存模块,用于基于所述目标目录和所述URL的生成逻辑,获取所述目标目录中的URL,缓存所述目标目录中的URL的资源。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311772933.8A CN117435829B (zh) | 2023-12-21 | 2023-12-21 | 一种目录预热方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311772933.8A CN117435829B (zh) | 2023-12-21 | 2023-12-21 | 一种目录预热方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117435829A true CN117435829A (zh) | 2024-01-23 |
CN117435829B CN117435829B (zh) | 2024-03-22 |
Family
ID=89550262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311772933.8A Active CN117435829B (zh) | 2023-12-21 | 2023-12-21 | 一种目录预热方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117435829B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110173154A1 (en) * | 2010-01-09 | 2011-07-14 | International Business Machines Corporation | Catalog reorganization apparatus and method |
US20160085750A1 (en) * | 2014-09-24 | 2016-03-24 | Fujitsu Limited | Storage apparatus and storage apparatus control method |
CN110674427A (zh) * | 2019-09-20 | 2020-01-10 | 北京达佳互联信息技术有限公司 | 响应网页访问请求的方法、装置、设备及存储介质 |
CN113784170A (zh) * | 2021-11-11 | 2021-12-10 | 深圳市名竹科技有限公司 | 内容数据预热方法、装置、计算机设备及存储介质 |
CN114691611A (zh) * | 2022-03-15 | 2022-07-01 | 北京金山云网络技术有限公司 | 目录刷新的处理方法及装置、电子设备和存储介质 |
CN115914189A (zh) * | 2022-12-22 | 2023-04-04 | 北京达佳互联信息技术有限公司 | 资源处理方法、装置、服务器、终端及存储介质 |
CN117061615A (zh) * | 2023-10-09 | 2023-11-14 | 杭州优云科技有限公司 | 缓存路径获取方法、装置、计算机设备及存储介质 |
-
2023
- 2023-12-21 CN CN202311772933.8A patent/CN117435829B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110173154A1 (en) * | 2010-01-09 | 2011-07-14 | International Business Machines Corporation | Catalog reorganization apparatus and method |
US20160085750A1 (en) * | 2014-09-24 | 2016-03-24 | Fujitsu Limited | Storage apparatus and storage apparatus control method |
CN110674427A (zh) * | 2019-09-20 | 2020-01-10 | 北京达佳互联信息技术有限公司 | 响应网页访问请求的方法、装置、设备及存储介质 |
CN113784170A (zh) * | 2021-11-11 | 2021-12-10 | 深圳市名竹科技有限公司 | 内容数据预热方法、装置、计算机设备及存储介质 |
CN114691611A (zh) * | 2022-03-15 | 2022-07-01 | 北京金山云网络技术有限公司 | 目录刷新的处理方法及装置、电子设备和存储介质 |
CN115914189A (zh) * | 2022-12-22 | 2023-04-04 | 北京达佳互联信息技术有限公司 | 资源处理方法、装置、服务器、终端及存储介质 |
CN117061615A (zh) * | 2023-10-09 | 2023-11-14 | 杭州优云科技有限公司 | 缓存路径获取方法、装置、计算机设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
GUO, SL等: "Hierarchical Cache Directory for CMP", 《JOURNAL OF COMPUTER SCIENCE AND TECHNOLOGY》, 1 March 2010 (2010-03-01), pages 246 - 256, XP019796588 * |
丁维龙;韩燕波;: "一种基于Web Service的虚拟化目录服务", 微电子学与计算机, no. 09, 5 September 2007 (2007-09-05), pages 140 - 142 * |
Also Published As
Publication number | Publication date |
---|---|
CN117435829B (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108287839B (zh) | 一种页面加载方法和设备 | |
RU2673403C2 (ru) | Способ доступа к веб-узлам, устройство и система веб-узла | |
JP6533871B2 (ja) | ウェブアプリケーションへのサインオンを制御するためのシステムおよび方法 | |
WO2017097123A1 (zh) | 访问请求转换的方法和装置 | |
JP2021504832A (ja) | モデルトレーニングシステムおよび方法および記憶媒体 | |
CN110888838B (zh) | 基于对象存储的请求处理方法、装置、设备及存储介质 | |
US20160028774A1 (en) | Data Access Policies | |
JP2002518726A (ja) | プラグインフィルタを用いた拡張性の高いプロキシサーバ | |
KR20150040325A (ko) | 애플리케이션 보안 검증을 위한 클라우드 지원형 방법 및 서비스 | |
CN112350978A (zh) | 一种业务处理方法、系统、设备及存储介质 | |
US11641356B2 (en) | Authorization apparatus, data server and communication system | |
CN113595925A (zh) | 一种智能网关动态限流实现方法 | |
CN112947945B (zh) | 一种多类型应用发布方法、装置、计算机设备和存储介质 | |
CN109324958B (zh) | 一种rest统一校验方法、装置、设备及可读存储介质 | |
CN111654542B (zh) | 代理服务器、执行服务器、接收设备以及任务执行方法 | |
KR20190061060A (ko) | 프로파일 기반 콘텐츠 및 서비스들 | |
CN117435829B (zh) | 一种目录预热方法及装置 | |
CN115733666A (zh) | 一种密码管理方法、装置、电子设备及可读存储介质 | |
CN115774584A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN111597573B (zh) | 页面嵌入方法、装置、计算机设备和存储介质 | |
CN109831496B (zh) | 一种终端数据的调试方法 | |
CN111752559A (zh) | 前后端分离系统、方法、装置和存储介质 | |
KR20210085551A (ko) | 벤더 특화 통신 기능을 구비하는 어댑티브 오토사 시스템 및 그것의 소스 코드 생성 방법 | |
TW201828093A (zh) | 訪問請求轉換的方法和裝置 | |
CN113901377B (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 | ||
CP03 | Change of name, title or address |
Address after: 310053 room 611-612, Zhuoxin building, No. 3820, South Ring Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Hangzhou Youyun Technology Co.,Ltd. Country or region after: China Address before: 310053 room 611-612, Zhuoxin building, No. 3820, South Ring Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee before: Hangzhou Youyun Technology Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |