CN113568643A - 一种资源获取方法、装置、电子设备及计算机可读介质 - Google Patents
一种资源获取方法、装置、电子设备及计算机可读介质 Download PDFInfo
- Publication number
- CN113568643A CN113568643A CN202110893184.9A CN202110893184A CN113568643A CN 113568643 A CN113568643 A CN 113568643A CN 202110893184 A CN202110893184 A CN 202110893184A CN 113568643 A CN113568643 A CN 113568643A
- Authority
- CN
- China
- Prior art keywords
- resource
- timestamp
- content distribution
- determining
- acquisition request
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了资源获取方法、装置、电子设备及计算机可读介质,涉及计算机技术领域,一具体实施方式包括接收资源获取请求,进而基于资源获取请求生成对应的时间戳防盗链;基于时间戳防盗链定位目标内容分发节点,以调用目标内容分发节点基于时间戳防盗链,对资源获取请求进行验证;响应于确定验证失败并且确定存在资源包更新,调用目标内容分发节点,以获取更新的资源包;解析更新的资源包,以获取目标资源。从而可以保证能够快速、准确地获取最新的资源。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种资源获取方法、装置、电子设备及计算机可读介质。
背景技术
目前,微应用平台的资源包是存放在网络附属存储(Network Attached Storage,NAS)集群,用户打开微应用之前,需要先调用下载接口,大量的下载需要消耗大量的内网带宽,同时NAS的输入/输出(Input/Output,I/O)压力非常大。随着微应用推广,估计微应用数量会达到900-1000个,带宽和I/O成为资源下载的性能瓶颈。
在实现本申请过程中,发明人发现现有技术中至少存在如下问题:
微应用数量增多时,带宽和I/O成为微应用资源下载的性能瓶颈。
发明内容
有鉴于此,本申请实施例提供一种资源获取方法、装置、电子设备及计算机可读介质,能够解决现有的微应用数量增多时,带宽和I/O成为微应用资源下载的性能瓶颈的问题。
为实现上述目的,根据本申请实施例的一个方面,提供了一种资源获取方法,包括:
接收资源获取请求,进而基于资源获取请求生成对应的时间戳防盗链;
基于时间戳防盗链定位目标内容分发节点,以调用目标内容分发节点基于时间戳防盗链,对资源获取请求进行验证;
响应于确定验证失败并且确定存在资源包更新,调用目标内容分发节点,以获取更新的资源包;
解析更新的资源包,以获取目标资源。
可选地,基于资源获取请求生成对应的时间戳防盗链,包括:
基于资源获取请求确定待获取资源的类型;
基于待获取资源类型生成对应的时间戳防盗链。
可选地,基于待获取资源的类型生成对应的时间戳防盗链,包括:
响应于确定待获取资源的类型为图片,获取资源获取请求对应的内容分发网络加速域名和资源保存文件路径,进而拼接内容分发网络加速域名和资源保存文件路径,生成时间戳防盗链。
可选地,基于待获取资源的类型生成对应的时间戳防盗链,包括:
响应于确定待获取资源的类型为资源包,获取内容分发服务的系统参数;
基于资源获取请求,确定对应的资源获取加密串;
调用时间戳算法,以基于系统参数和资源获取加密串生成对应的时间戳防盗链。
可选地,基于时间戳防盗链定位目标内容分发节点,包括:
确定时间戳防盗链中的资源保存文件路径;
基于预设的路径与内容分发节点的对应关系,确定资源保存文件路径对应的内容分发节点,进而将确定出的内容分发节点确定为目标内容分发节点。
可选地,对资源获取请求进行验证,包括:
确定时间戳防盗链中的预设过期时间;
响应于确定预设过期时间到达,返回验证失败信息。
可选地,对资源获取请求进行验证,包括:
确定时间戳防盗链中的预设过期时间和校验码;
响应于确定预设过期时间未到达且校验码错误,返回验证失败信息。
可选地,在接收资源获取请求之前,方法还包括:
接收应用开启请求,获取应用对应的最新版本标识;
确定本地缓存的资源包对应的本地版本标识,进而将最新版本标识与本地版本标识进行比较;
响应于确定最新版本标识与本地版本标识不一致,基于最新版本标识生成对应的资源获取请求。
可选地,在获取更新的资源包之前,方法还包括:
确定内容分发服务的开关标识、待开启应用的下载标识和下架标识;
响应于确定开关标识为第一预设值、下载标识为第二预设值、下架标识为第三预设值,触发资源包获取进程。
可选地,在获取更新的资源包之前,方法还包括:
获取应用白名单,响应于确定待开启应用位于白名单中,触发基于内容分发服务的资源包获取进程。
可选地,在接收资源获取请求之前,方法还包括:
调用定时器,以调用预热接口进行更新的资源包的预热。
另外,本申请还提供了一种资源获取装置,包括:
接收单元,被配置成接收资源获取请求,进而基于资源获取请求生成对应的时间戳防盗链;
验证单元,被配置成基于时间戳防盗链定位目标内容分发节点,以调用目标内容分发节点基于时间戳防盗链,对资源获取请求进行验证;
资源包获取单元,被配置成响应于确定验证失败并且确定存在资源包更新,调用目标内容分发节点,以获取更新的资源包;
解析单元,被配置成解析更新的资源包,以获取目标资源。
可选地,接收单元进一步被配置成:
基于资源获取请求确定待获取资源的类型;
基于待获取资源类型生成对应的时间戳防盗链。
可选地,接收单元进一步被配置成:
响应于确定待获取资源的类型为图片,获取资源获取请求对应的内容分发网络加速域名和资源保存文件路径,进而拼接内容分发网络加速域名和资源保存文件路径,生成时间戳防盗链。
可选地,接收单元进一步被配置成:
响应于确定待获取资源的类型为资源包,获取内容分发服务的系统参数;
基于资源获取请求,确定对应的资源获取加密串;
调用时间戳算法,以基于系统参数和资源获取加密串生成对应的时间戳防盗链。
可选地,验证单元进一步被配置成:
确定时间戳防盗链中的资源保存文件路径;
基于预设的路径与内容分发节点的对应关系,确定资源保存文件路径对应的内容分发节点,进而将确定出的内容分发节点确定为目标内容分发节点。
可选地,验证单元进一步被配置成:
确定时间戳防盗链中的预设过期时间;
响应于确定预设过期时间到达,返回验证失败信息。
可选地,验证单元进一步被配置成:
确定时间戳防盗链中的预设过期时间和校验码;
响应于确定预设过期时间未到达且校验码错误,返回验证失败信息。
可选地,资源获取装置还包括请求生成单元,被配置成:
接收应用开启请求,获取应用对应的最新版本标识;
确定本地缓存的资源包对应的本地版本标识,进而将最新版本标识与本地版本标识进行比较;
响应于确定最新版本标识与本地版本标识不一致,基于最新版本标识生成对应的资源获取请求。
可选地,资源包获取单元进一步被配置成:
确定内容分发服务的开关标识、待开启应用的下载标识和下架标识;
响应于确定开关标识为第一预设值、下载标识为第二预设值、下架标识为第三预设值,触发资源包获取进程。
可选地,资源包获取单元进一步被配置成:
获取应用白名单,响应于确定待开启应用位于白名单中,触发基于内容分发服务的资源包获取进程。
可选地,资源包获取单元进一步被配置成:
调用定时器,以调用预热接口进行更新的资源包的预热。
另外,本申请还提供了一种资源获取电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述的资源获取方法。
另外,本申请还提供了一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现如上述的资源获取方法。
上述发明中的一个实施例具有如下优点或有益效果:本申请通过接收资源获取请求,进而基于资源获取请求生成对应的时间戳防盗链;基于时间戳防盗链定位目标内容分发节点,以调用目标内容分发节点基于时间戳防盗链,对资源获取请求进行验证;响应于确定验证失败并且确定存在资源包更新,调用目标内容分发节点,以获取更新的资源包;解析更新的资源包,以获取目标资源。从而可以保证能够快速、准确地获取最新的资源。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本申请,不构成对本申请的不当限定。其中:
图1是根据本申请第一实施例的资源获取方法的主要流程的示意图;
图2是根据本申请第二实施例的资源获取方法的主要流程的示意图;
图3是根据本申请第三实施例的资源获取方法的应用场景示意图;
图4是根据本申请实施例的资源获取装置的主要单元的示意图;
图5是本申请实施例可以应用于其中的示例性系统架构图;
图6是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本申请第一实施例的资源获取方法的主要流程的示意图,如图1所示,资源获取方法包括:
步骤S101,接收资源获取请求,进而基于资源获取请求生成对应的时间戳防盗链。
本实施例中,资源获取方法的执行主体(例如,可以是由客户端、业务服务器AP、源站、CDN节点、NAS、业务服务器、管理端集成的系统)可以通过有线连接或无线连接的方式,接收资源获取请求。执行主体中的业务服务器AP是指与客户端中的微应用软件开发工具包(Software Development Kit,SDK)进行通信的微应用服务端。网络附属存储(NetworkAttached Storage,NAS,NAS被定义为一种特殊的专用数据存储服务器,包括存储器件(例如磁盘阵列、CD/DVD驱动器、磁带驱动器或可移动的存储介质。业务服务器是指内部管理的后台运营服务器。管理端用于上传新版本资源包。资源获取请求可以是微应用资源包的获取请求。微应用,一种跨平台的前端开发框架,基于框架开发的业务常见部署部署于手机银行,例如可以是手机银行中的“出行”、“便民”、“金融”等。资源,即基于微应用框架开发的构建物,类型可分为公测包,内测包。正式面向用户开放的应用资源称为公测包;业务内部试营业而对客开放条件仍不成熟的称为内测包。
执行主体可以从资源获取请求中获取生成时间戳防盗链相关的参数,例如文件路径/文件名:FileDir/FileName(例如/test.dat)、MD5(过期时间-文件路径-自定义秘钥)32位:md5hash(例如约定的字符串)、过期时间,生成防盗链的链接过期时间,时间戳,十六进制:expireTimestamp(例如20130615)。
示例的,资源获取请求的模板可以是(具体地,下方资源获取请求的模板中的“xxx”可以代表任意字符,本申请实施例对“xxx”所代表的具体字符不做限定):
https://mb1.mp.xxx.com/mp/statics/cdn/md5(FileDir)/FileName?wsSe cret=md5hash&wsTime=expireTimestamp
示例的,资源获取请求可以为:
https://mb1.mp.xxx.com/mp/statics/cdn/01/39405cb09f8cbaa5224655ffe8b5d25b/1618301804404.zip?key1=0ec538308937f0952e764042109ae869&key2=60755EEC
示例的,时间戳防盗链可以为:
http://cdn.example.com/test.dat?wsSecret=d41d8cd98f00b204e9800998ecf8427e&wsTime=20130615
或者,也可以为:
http://cdn.example.com/d41d8cd98f00b204e9800998ecf8427e/20130615/test.dat
其中,test.dat为文件路径<path>;20130615为过期时间<endtime>;d41d8cd98f00b204e9800998ecf8427e为原始加密串。
具体地,在接收资源获取请求之前,资源获取方法还包括:
接收应用开启请求,获取应用对应的最新版本标识;确定本地缓存的资源包对应的本地版本标识,进而将最新版本标识与本地版本标识进行比较;响应于确定最新版本标识与本地版本标识不一致,基于最新版本标识生成对应的资源获取请求。也就是说,在获取资源包之前,执行主体要对获取的资源包的版本进行验证,以确定是否是最新版本,如果不是最新版本,则根据最新版本的标识(例如可以是版本序列号,示例的:版本8.0.9)来生成针对最新版本(示例的:版本8.0.9)的资源包的资源获取请求。
具体地,在接收资源获取请求之前,方法还包括:
调用定时器,以调用预热接口进行更新的资源包的预热。。预热,可以是执行主体调用CDN厂家的预热API接口,以调用CDN节点进行回源(回源即当CDN节点未命中请求资源或缓存资源已到期时,重新回CDN源站获取资源的一种操作)访问拉取待缓存的公测包(可以是更新的公测包),在用户访问发生之前便已经缓存在CDN节点上,达到用户快速下载的目的。示例的,执行主体在检测到新资源包发布之后,可以执行判断是否允许通过内容分发网络(Content Delivery Network,CDN)节点进行新资源包的获取。如果执行主体确定可以通过CDN节点进行新资源包的获取,则主动调用CDN厂商的CDN预热接口,进行新资源包的预热,并判断是否预热成功,如果预热成功则向执行主体返回预热成功信息,如果预热不成功,则返回异常信息。
具体地,基于资源获取请求生成对应的时间戳防盗链,包括:
基于资源获取请求确定待获取资源的类型;基于待获取资源类型生成对应的时间戳防盗链。
本实施例中,在生成时间戳防盗链时,执行主体可以针对不同类型的微应用资源采用不同的策略。因为不同类型的微应用资源有不同的安全等级要求,比如图片敏感度较低,资源包敏感度则较高。当待获取资源类型为图片时,生成的时间戳防盗链中不包含URL合法性相关的参数。当待获取资源类型为资源包时,生成的时间戳防盗链中要包含URL合法性验证相关的参数。执行主体可以根据待获取资源类型为图片或者资源包而生成对应图片或者资源包的时间戳防盗链。
具体地,基于待获取资源的类型生成对应的时间戳防盗链,包括:
响应于确定待获取资源的类型为图片,获取资源获取请求对应的内容分发网络加速域名(为资源下载提供加速的域名[mb1.mp.xxx.com])和资源保存文件路径,进而拼接内容分发网络加速域名和资源保存文件路径,生成时间戳防盗链。示例的,如果待获取资源的类型为图片,则由客户端拼接图片资源下载URL,具体地,客户端保存了CDN加速域名,服务端接口返回资源的部分路径信息,两者拼接得到合法的图片资源下载URL即对应图片资源的时间戳防盗链。
具体地,基于待获取资源的类型生成对应的时间戳防盗链,包括:
响应于确定待获取资源的类型为资源包,获取内容分发服务的系统参数(也就是包括文件路径、密文、过期时间);基于资源获取请求,确定对应的资源获取加密串(也就是交底书中的原始加密串);调用时间戳算法,以基于系统参数和资源获取加密串生成对应的时间戳防盗链。示例的,如果待获取资源的类型为资源包,则统一由服务端调用时间戳算法,进而根据资源获取请求中的各参数,以生成资源包下载的URL即对应资源包的时间戳防盗链。同时执行主体可以调用CDN节点的配置以检验待获取资源包的URL合法性而对待获取的图片资源的URL不校验URL合法性。
步骤S102,基于时间戳防盗链定位目标内容分发节点,以调用目标内容分发节点基于时间戳防盗链,对资源获取请求进行验证。
具体地,对资源获取请求进行验证,包括:
确定时间戳防盗链中的预设过期时间;响应于确定预设过期时间到达,返回验证失败信息。也就是说,在确定预设过期时间到达,比如设定10分钟的缓存资源保留期,当从资源保存之时开始到达10分钟,则返回对资源获取请求验证失败的信息。
具体地,对资源获取请求进行验证,包括:
确定时间戳防盗链中的预设过期时间和校验码;响应于确定预设过期时间未到达且校验码错误,返回验证失败信息。具体地,CDN节点在验证请求时,除了验证过期时间,同时还会验证MD5值是否与预设值匹配,对于不匹配的MD5,即使请求未过期也会禁止服务。每个资源获取请求的有效性设定过期时间为10分钟。微应用公测包时间戳防盗链的目的是验证每个资源获取请求的URL具有一定“时效性”。
步骤S103,响应于确定验证失败并且确定存在资源包更新,调用目标内容分发节点,以获取更新的资源包。
具体地,在获取更新的资源包之前,方法还包括:
确定内容分发服务的开关标识(即是否开启CDN总开关,CDN总开关开启对应的开关标识可以为“1”,CDN总开关关闭对应的开关标识可以为“0”,本申请对开关标识对应的具体值和具体值所代表的含义不做限定)、待开启应用的下载标识(即是否开放CDN下载,开放CDN下载,则对应的下载标识可以是“1”,未开放CDN下载,则对应的下载标识可以是“0”,本申请对下载标识对应的具体值和具体值所代表的含义不做限定)和下架标识(是否已下架,下架对应的下架标识可以为“1”,未下架对应的下架标识可以为“0”,本申请对下架标识对应的具体值和具体值所代表的含义不做限定)。
响应于确定开关标识为第一预设值(例如是1)、下载标识为第二预设值(例如是1)、下架标识为第三预设值(例如是0),表明开启了CDN总开关,单个微应用开放CDN下载,且微应用没有下架。触发资源包获取进程。
具体地,在获取更新的资源包之前,方法还包括:
获取应用白名单,响应于确定待开启应用位于白名单中,触发基于内容分发服务的资源包获取进程。即对于某些微应用采用白名单的方式,允许部分白名单用户通过CDN节点获取资源,灰度验证CDN加速,验证效果后统一放开CDN资源获取权限。灰度验证,就是在某项产品或应用正式发布前,选择特定人群试用,逐步扩大其试用者数量,以便及时发现和纠正其中的问题,由“灰”到“黑”。
步骤S104,解析更新的资源包,以获取目标资源。
对更新的资源包进行解压解密,获取解压解密后的微应用资源即目标资源。
本实施例通过接收资源获取请求,进而基于资源获取请求生成对应的时间戳防盗链;基于时间戳防盗链定位目标内容分发节点,以调用目标内容分发节点基于时间戳防盗链,对资源获取请求进行验证;响应于确定验证失败并且确定存在资源包更新,调用目标内容分发节点,以获取更新的资源包;解析更新的资源包,以获取目标资源。从而可以保证能够快速、准确地获取最新的资源。
图2是根据本申请第二实施例的资源获取方法的主要流程示意图,如图2所示,资源获取方法包括:
步骤S201,接收资源获取请求,进而基于资源获取请求生成对应的时间戳防盗链。
步骤S202,基于时间戳防盗链定位目标内容分发节点,以调用目标内容分发节点基于时间戳防盗链,对资源获取请求进行验证。
步骤S201~步骤S202的原理与步骤S101~步骤S102的原理类似,此处不再赘述。
具体地,步骤S202还可以通过步骤S2021~步骤S2022来实现:
步骤S2021,确定时间戳防盗链中的资源保存文件路径。
示例的,时间戳防盗链可以为:
http://cdn.example.com/test.dat?wsSecret=d41d8cd98f00b204e9800998ecf8427e&wsTime=20130615
其中,test.dat为资源保存文件路径<path>。
步骤S2022,基于预设的路径与内容分发节点的对应关系,确定资源保存文件路径对应的内容分发节点,进而将确定出的内容分发节点确定为目标内容分发节点。从而可以快速准确地定位到可以获取待获取资源的CDN节点,提高资源获取效率。
步骤S203,响应于确定验证失败并且确定存在资源包更新,调用目标内容分发节点,以获取更新的资源包。
步骤S204,解析更新的资源包,以获取目标资源。
步骤S203~步骤S204的原理与步骤S103~步骤S104的原理类似,此处不再赘述。
图3是根据本申请第三实施例的资源获取方法的应用场景示意图。本申请实施例的资源获取方法,应用于在打开大量微应用之前,对微应用对应的资源包进行下载的场景。如图3所示,业务服务器AP是指与客户端中的微应用软件开发工具包(SoftwareDevelopment Kit,SDK)进行通信的微应用服务端。资源通过业务服务器部署到网络附属存储(Network Attached Storage,NAS,NAS被定义为一种特殊的专用数据存储服务器,包括存储器件(例如磁盘阵列、CD/DVD驱动器、磁带驱动器或可移动的存储介质)和内嵌系统软件,可提供跨平台文件共享功能)后,把资源路径信息记录到数据库,客户端打开微应用之前需要从业务服务器AP获取CDN加速URL,业务服务器从数据库拿到所保存的路径信息构建好CDN URL,客户端凭借CDN URL去CDN二级节点获取内容,如果存在则返回内容,如果否则继续到CDN一级节点获取内容,如果存在则返回否则一级节点到源站(源站即CDN节点拉取文件的服务器地址[mb1.mp.xxx.com]对应的公网ip)拉取该资源后返回给客户端。源站需要从NAS读取最初保存的资源。业务服务器是指内部管理的后台运营服务器。
在进行资源包下载之前,可以由管理端上传新版本资源包至业务服务器。微应用资源版本包发布定时器执行更新版本,管理端进行资源包新版本上传(业务服务器负责逻辑处理,接收资源包的二进制流,处理后保存到NAS文件服务器)。NAS加密保存文件到CDN目录:检查每个微应用是否存在密钥,如果不存在则生成一个密钥(例如,可以采用java平台的随机算法生成随机密钥)用于资源包AES加密,资源包加密后保存到NAS,并根据保存路径生成MD5软连接(MD5软连接用于隐藏资源处于NAS的真实路径)。NAS保存文件路径等信息到微应用CDN版本表:新增一条记录到CDN版本信息表,用于保存软连接信息。预热,可以是调用CDN厂家的预取API接口,然后CDN节点进行回源访问拉取该资源包(本申请中,例如可以是公测包),在用户访问发生之前便已经缓存在CDN节点上,达到用户快速下载的目的。微应用资源发布新包后,除了用户主动访问资源之外,业务服务器可以采用定时器扫描CDN表,以调用CDN表中的CDN预热接口的方式进行公测包的主动预热,提升用户第一次访问微应用直接从CDN节点下载资源包的快速打开的体验。对于预热接口的设计,执行主体可以调用微应用平台查询CDN防盗链URL、交易码dwn001,提供给客户端访问获取每个微应用资源对应的CDN节点以及微应用资源的下载地址,以调用CDN节点基于微应用资源的下载地址进行公测包的主动预热。
示例的,当客户端向服务端请求小程序(即应用)公测包对应的CDN的下载路径时,对应的接口详情如下:
请求方式:HTTP,POST
请求地址:该请求只有V2版本接口可调用
V2请求地址:http://[ip:port]/mbsmps/V2/download?txcode=dwn001请求参数:
字段(appid),说明(微应用ID),类型(String),是否必填(是)
字段(sys_version),说明(时间戳),类型(String),是否必填(否)
字段(app_type),说明(初始化下载类型:0内测,1公测),类型(String),是否必填(否)
请求参数示例:
{
"appid":"app2019091800000003",
"sys_version":"1568816385278",
"app_type":""
}
返回结果:
字段名称(data),字段含义(无),数据类型(Map),是否必填(是)
字段名称(cdn_full_url),字段含义(CDN下载完整路径),数据类型(String),是否必填(否)
字段名称(cdn_md5),字段含义(CDN资源包MD5(资源包加密前)),数据类型(String),是否必填(否)
字段名称(appid),字段含义(应用ID),数据类型(String),是否必填(是)
字段名称(app_version),字段含义(应用版本号),数据类型(String),是否必填(否)
字段名称(sys_version),字段含义(时间戳),数据类型(String),是否必填(否)
字段名称(app_secret_key),字段含义(应用加密秘钥),数据类型(String),是否必填(否)
字段名称(firsturl),字段含义(跳转路径),数据类型(String),是否必填(否)
返回结果示例:
示例的,对于微应用平台预热和刷新交易,交易码scdn001。为版本更新资源提供预热和刷新。
具体地,示例如下:
请求方式:HTTP,POST
请求地址:http://[ip:port]/mbsmps/txCtrl?txcode=scdn001
请求参数:
字段(urlType),说明(url类型,yure(预热),shuaxin(刷新)),类型(String),是否必填(是)
字段(performType),说明(执行类型:1手动,2定时器),类型(String),是否必填(否)
字段(cdnVersions),说明(CDN需要预热的列表),类型(List),是否必填(否)
字段(pushType),说明(推送类型:logo,zip),类型(String),是否必填(无)
请求参数示例:
返回结果:
字段名称(code),字段含义(状态码),数据类型(int),是否必填(是)
字段名称(msg),字段含义(描述),数据类型(String),是否必填(是)
返回结果示例:
以上,其余交易/接口涉及类似,不再一一列举。
业务服务器可以通过更改源站返回响应头中的max-age字段,设定资源包缓存时间为7天。CDN厂家控制台配置去问号缓存,忽略请求路径的问号后面的参数部分,防止带防盗链参数的URL-不能CDN缓存返回内容-从而每次都回源访问。异步线程预热资源包:示例的,预热定时器每10分钟运行一次,从CDN版本信息表查询还没进行预热并且预热次数小于5的记录进行预热,资源包预热次数超过5次,即使还没预热成功也不再进行预热。根据预热CDN厂商系统参数调用不同的厂家预热的API接口。预热成功会把预热字段设置为1,预热失败会增加预热次数。API接口调用会记录流水记录到调用流水表(调用流水表记录了预热结果与预热时间,预热次数)。根据CDN控制表获取是否允许CDN下载的小开关进行是否调用预热API。
在异步线程预热资源包之后,用户可以通过在手机银行点击某个微应用以打开微应用。具体地,微应用可以是小程序。示例的,用户可以点击手机银行中的“微应用”下的“出行”微应用来使用出行微应用所提供的功能。当然,用户也可以点击手机银行中的“微应用”下的“便民”微应用来使用便民微应用所提供的功能。本申请对微应用的类型的具体内容不做限定。然后,客户端可以进行微应用的资源包更新检查:具体可以是将客户端本地缓存的微应用资源包版本号与管理端返回的版本号进行比较,如果为旧版本,则进行资源包更新调用/v2/download?dwn001:客户端/SDK向服务端业务服务器AP发起交易dwn001。执行主体可以进行资源包下载检查:具体可以是执行主体调用业务逻辑判断是否开启CDN总开关,单个微应用是否开放CDN下载,是否已经下架等逻辑。如果没有开启CDN总开关(例如检测到CDN总开关标识为0,本申请对此开关标识不做具体限定),则用原交易方式进行资源下载。如果CDN总开关开启,则执行主体基于防盗链算法生成CDN下载链接:根据CDN加速服务厂商系统参数生成防盗链下载URL,由业务服务器在客户端请求时动态生成。然后执行主体可以向客户端返回CDN时间戳防盗链。客户端在接收到CDN时间戳防盗链后,可以基于CDN时间戳防盗链,通过安全数据传输https重定向到CDN:客户端使用okhttp网络框架发起资源获取请求,并基于时间戳进行防盗链鉴权以判断资源获取请求是否过期,在资源获取请求未过期的情况下通过重定向得到的CDN(内容分发网络)节点来获取更新的微应用资源包。具体地,获取资源包(File Name):CDN接受到资源获取请求,如果二级节点不存在该资源,则从一级节点拉取,一级节点不存在该资源则进一步再从源站拉取。不同路径的资源包是唯一的资源。读取资源包:源站mb1从底层基础设施NAS读取资源包。返回资源包:NAS向源站返回资源包。返回资源包,设置max-age:设置内容缓存时间为7天。返回微应用资源包:CDN节点向客户端返回资源包。然后可以由客户端进行资源包解压解密:启动时客户端向服务端初始化获取了所有微应用的密钥,通过该密钥进行AES解密,写入本地库防盗链过期时间。然后进入首页:SDK渲染资源包内容,完成打开首页,进入微应用首页。然后客户端在防盗链到期前,当有需求发起资源获取请求时,可以直接连接确定的相应的CDN节点,并基于防盗链的时间戳进行防盗链鉴权,以判断发起的资源获取请求是否过期,即是否可以基于该请求获取相关资源。进而在请求未过期时,调用基于防盗链确定的CDN节点获取相应的微应用资源包,并向客户端返回该相应的微应用资源包。然后可以由客户端进行资源包解压解密:启动时客户端向服务端初始化获取了所有微应用的密钥,通过该密钥进行AES解密,写入本地库防盗链过期时间。然后进入首页:SDK渲染资源包内容,完成打开首页,进入微应用首页。
CDN是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度。微应用资源发布后,需要额外保存一份数据到对应的CDN目录(非CDN托管前的资源包的保存是不加密的,额外保存的是加密的)。以上,CDN业务逻辑可以为同一个资源包每次发布的新包使用不同的名字,确保从CDN获取的资源包为最新版本,名字可以设为{sys_version}.zip,其中sys_version为当前资源包的系统版本号,其含义为资源包上传时的服务端当前时间戳。如:1593413892.zip。服务端在上传新版本的资源包成功后,同时把该资源包所在路径,资源包版本,资源包md5值等信息保存到数据库的微应用CDN版本表。CDN清理定时器将历史版本资源包从CDN目录中删除,CDN目录只保留最新发布的5个版本包。本申请实施例中,CDN的管理功能可以包括:管理端对每个微应用的公测包提供预热和刷新的功能。管理端对每个微应用的Logo图标提供预热和刷新的功能。管理端显示每个微应用的预热和刷新的状态返回码和任务提交时间(任务提交到CDN厂家API接口的时间。可理解为开始时间)。这个时间与全网刷新生效时间(全网生效时间是从提交到CDN节点拉取资源包并缓存的时间差)有5-10分钟的延迟。资源刷新[purge]/预热[fetch],调用CDN厂家的API接口实现,为了防止误操作,不按目录操作,只按公测包的资源url操作,存在刷新次数的限制,评估日均调用量后联系厂家修改次数上限。示例的,刷线次数:微应用A(每天5000URL/500目录),微应用B(2000URL/100目录),预热限制:微应用A(每天20000次/200G大小),微应用B(2000URL/不支持目录预热)。客户端下载:客户端可以根据接口是否返回APPID_CDN_FULL_URL来访问新旧的资源包下载接口,即客户端根据返回的标识走CDN下载资源包或者走原有的文件流下载。客户端在保留原有下载资源包方式的同时,增加对CDN下载地址的支持。避免客户端频繁访问新下载接口/V2/download,本地缓存服务端返回的防盗链过期时间定为30-1=29分钟。客户端使用新接口下载出现除鉴权之外的异常,切换回旧接口下载交易。微应用Logo图标非敏感信息,不加入防盗链信息,CDN下载地址由客户端拼接生成(客户端保存了CDN加速域名,服务端接口返回资源的部分路径信息,两者拼接得到合法的URL)。部分不需要使用防盗链的微应用可由客户端拼接下载地址,可配置。对于数据库的设计,示例的:
本申请中,XXX_MINI_CDN_CONTROL(微应用CDN控制表,用于保存每个微应用是否开放CDN下载链接的配置。用于灰度发布微应用资源包到CDN,保障微应用接入CDN的可控,其中,“XXX”可以代表任意字符,本申请实施例对“XXX”所代表的具体字符不做限定)。
示例的:
字段名(APP_ID),字段说明(应用ID),类型(varchar2(50)),是否为空(Notnull),备注(无);
字段名(IS_ALLOW_FROM_CDN),字段说明(是否允许从CDN下载资源(0-不允许,1-允许)),类型(number(1)),是否为空(Not null),备注(0);
字段名(IS_CLIENT_CDN_URL),字段说明(是否客户端生成CDN_URL(0-否1-是,Logo和部分无需防盗链的微应用可以配置这个值为1)),类型(number(1)),是否为空(Notnull),备注(0);
字段名(CREATE_TIME),字段说明(创建时间),类型(date),是否为空(无),备注(无);
字段名(CREATE_USER),字段说明(创建人),类型(varchar2(64)),是否为空(无),备注(无);
字段名(UPDATE_TIME),字段说明(更新时间),类型(date),是否为空(无),备注(无);
字段名(UPDATE_USER),字段说明(更新人),类型(varchar2(64)),是否为空(无),备注(无);
字段名(IS_COVER_BY_ORIGINAL),字段说明(是否兜底(是否不允许从mns003下载资源),0-否,1-是),类型(number(1)),是否为空(无),备注(默认值:1);
字段名(CDN_WHITEKEY),字段说明(白名单关键字),类型(varchar2(200)),是否为空(无),备注(无)。
本申请中,XXX_MINI_CDN_VERSION(微应用CDN版本表,每次发布微应用公测包,需要保存信息到微应用CDN版本表)。
示例的:
字段名(APP_ID),字段说明(应用ID),类型(varchar2(50)),是否为空(Notnull),备注(无);
字段名(CDN_VERSION),字段说明(CDN资源版本号),类型(varchar2(30)),是否为空(Not null),备注(无);
字段名(CDN_RES_URL),字段说明(CDN资源文件路径),类型(varchar2(150)),是否为空(无),备注(无);
字段名(CDN_MD5),字段说明(资源MD5),类型(varchar2(128)),是否为空(无),备注(无);
字段名(REMARK1),字段说明(备用字段1),类型(varchar2(200)),是否为空(无),备注(无);
字段名(REMARK2),字段说明(备用字段2),类型(varchar2(200)),是否为空(无),备注(无);
字段名(REMARK3),字段说明(备用字段3),类型(varchar2(200)),是否为空(无),备注(无);
字段名(CREATE_TIME),字段说明(创建时间),类型(date),是否为空(无),备注(无);
字段名(CREATE_USER),字段说明(创建人),类型(varchar2(64)),是否为空(无),备注(无);
字段名(UPDATE_TIME),字段说明(更新时间),类型(date),是否为空(无),备注(无);
字段名(UPDATE_USER),字段说明(更新人),类型(varchar2(64)),是否为空(无),备注(无);
字段名(AES_ID),字段说明(微应用zip密钥表的id),类型(number(20)),是否为空(无),备注(无);
字段名(IS_TIMER_FETCH),字段说明(是否已预热0否1是默认否),类型(number(1)),是否为空(无),备注(默认值:0);
字段名(TIMER_FETCH_COUNT),字段说明(预热次数),类型(number(5)),是否为空(无),备注(默认值:0);
字段名(IS_CDN_DELETE),字段说明(是否删除,0-否,1-是),类型(number(1)),是否为空(无),备注(默认值:0)。
本申请中,XXX_MINI_CDN_LOGO(微应用CDN LOGO表,用于保存微应用的logo信息)。
示例的:
字段名(APP_ID),字段说明(应用ID),类型(varchar2(50)),是否为空(Notnull),备注(无);
字段名(CDN_VERSION),字段说明(CDN资源版本号),类型(varchar2(30)),是否为空(Not null),备注(无);
字段名(CDN_LOGO_URL),字段说明(CDN应用logo路径),类型(varchar2(150)),是否为空(无),备注(无);
字段名(REMARK1),字段说明(备用字段1),类型(varchar2(200)),是否为空(无),备注(无);
字段名(REMARK2),字段说明(备用字段2),类型(varchar2(200)),是否为空(无),备注(无);
字段名(REMARK3),字段说明(备用字段3),类型(varchar2(200)),是否为空(无),备注(无);
字段名(CREATE_TIME),字段说明(创建时间),类型(date),是否为空(无),备注(无);
字段名(CREATE_USER),字段说明(创建人),类型(varchar2(64)),是否为空(无),备注(无);
字段名(UPDATE_TIME),字段说明(更新时间),类型(date),是否为空(无),备注(无);
字段名(UPDATE_USER),字段说明(更新人),类型(varchar2(64)),是否为空(无),备注(无)。
本申请中,XXX_MINI_SECURITY_APPLY(CDN加密资源包AES_KEY保存表,资源包加密,按照不同版本保存AES加解密密钥信息)。
示例的:
字段名(ID),字段说明(主键id),类型(number(20)),是否为空(Not null),备注(无);
字段名(APP_ID),字段说明(微应用编号),类型(varchar2(50)),是否为空(无),备注(无);
字段名(APP_SECRET_KEY),字段说明(微应用资源包加密使用的AES算法key),类型(varchar2(64)),是否为空(无),备注(无);
字段名(KEY_VERSION),字段说明(第一个使用该key资源包version),类型(varchar2(30)),是否为空(无),备注(无);
字段名(KEY_VERSION),字段说明(第一个使用该key资源包version),类型(varchar2(30)),是否为空(无),备注(无);
字段名(CREATE_TIME),字段说明(创建时间),类型(date),是否为空(无),备注(无);
字段名(UPDATE_TIME),字段说明(更新时间),类型(date),是否为空(无),备注(无);
字段名(REMARK1),字段说明(备用字段1),类型(varchar2(200)),是否为空(无),备注(无);
字段名(REMARK2),字段说明(备用字段2),类型(varchar2(200)),是否为空(无),备注(无);
字段名(REMARK3),字段说明(备用字段3),类型(varchar2(200)),是否为空(无),备注(无)。
本申请中,XXX_MINI_CDN_CALL_RECORD(调用CDN服务商接口记录表)。
示例的:
字段名(ID),字段说明(主键id),类型(number(20)),是否为空(Not null),备注(无);
字段名(CODE),字段说明(CDN返回状态码),类型(varchar2(64)),是否为空(无),备注(无);
字段名(MESSAGE),字段说明(CDN返回消息),类型(varchar2(1000)),是否为空(无),备注(无);
字段名(CREATE_TIME),字段说明(创建时间),类型(date),是否为空(无),备注(无);
字段名(PUSH_TYPE),字段说明(请求URL类型(yure,shuaxin)),类型(varchar2(50)),是否为空(无),备注(无);
字段名(URL_TYPE),字段说明(推送类型(zip,logo)),类型(varchar2(50)),是否为空(无),备注(无);
字段名(CDN_SERVICE_PROVIDER),字段说明(加速域名服务商),类型(varchar2(50)),是否为空(无),备注(无);
字段名(APP_ID),字段说明(微应用ID),类型(varchar2(50)),是否为空(无),备注(无);
字段名(REMARK1),字段说明(备用字段1),类型(varchar2(200)),是否为空(无),备注(无);
字段名(REMARK2),字段说明(备用字段2),类型(varchar2(200)),是否为空(无),备注(无);
字段名(REMARK3),字段说明(备用字段3),类型(varchar2(200)),是否为空(无),备注(无)。
对于本申请的可用性设计,示例的:
本申请实施例考虑到资源包从CDN厂家节点下载,形成了一个对第三方的依赖,虽然CDN的故障概率很低,一旦第三方系统不稳定会直接影响业务,对系统可用性造成影响,所以从CDN可用检测、从CDN紧急切换开关,客户端下载兜底和主备切换的角度实现可用性目标。
CDN紧急切换开关:
增加服务端配置参数:CDN下载的全局开关。在非常紧急的情况下,修改CDN下载的全局开关,则服务端接口不会返回CDN相关下载信息,这样客户端就不再从CDN下载资源,改为走交易接口下载。带来的影响对微应用系统的带宽消耗非常大。
客户端下载兜底:
如果从CDN下载失败,鉴权失败,则不基于交易接口下载,如果是由于非CDN鉴权失败引起的错误,则客户端重新基于交易接口下载。
主备切换(只使用一个加速域名):
示例的,执行主体根据市场占有率原则将资源正式部署于H,K作为备份。资源发布同时推送两个厂家,防止回源流量过大。客户端访问流量主走A,B做资源备份。检测到或收到A出现资源下载失败的故障,则需要走切换流程。故障如果恢复,不进行切换。
切换前,执行主体进行全量微应用的主动预热。分批预热每次不超过100个。主动预热的原因是虽然公测包(即资源包)在每次发布都做了双厂家预热,但超过缓存时间而无访问量的资源也会自动失效,防止切换后回源流量过大。
切换过程中,由网络将加速域名mb1.mp.xxx.com从ACNAME手工切换到BCNAME记录,用户访问的地址https://mb1.mp.xxx.com/mp/statics/资源包.zip?sign=xxxxx加密串会由B进行解析和全局负载均衡。
切换过程中,配置参数(更新周期)从30分钟调整到90分钟,使客户端的微应用尽量使用本地版本,同时配置参数(CDN全局开关)从1切回0,CDN下载通道临时关闭,恢复资源下载。
主备切换后,配置参数调整为30分钟和重新打开CDN开关。
为兼容旧版本客户端,服务器需继续保留原来的下载资源包的相关交易,同时相关的资源包仍然需要保存到原有的存储目录中。
本申请实施例的有益效果:提升用户访问微应用速度:使用CDN后全国的访问速度-平均传输速度5.76MB/s;使用CDN前全国访问速度-平均下载速度590KB/s。降低带宽成本:在保证访问效果最优的情况下,使用CDN降最大程度的降低带宽成本和人力维护成本。隐藏源站,增强源站抗攻击能力:由于CDN隐藏了源站的真实IP以及CDN天然的抗攻击能力,使用CDN后,源站的安全性会大幅提升。减轻源站压力:使用CDN以后,一个带宽峰值100Gbps左右的大型站点基本只需要维护带宽峰值在1~2Gbps左右的源站即可。
本申请实施例微应用资源下载接入CDN:依托于手机银行渠道的微应用资源包从内网的NAS切换到互联网CDN,并且可以通过CDN全局开关切换为原有的交易模式下载。防盗链对于不同类型的微应用资源采用不同的策略:因为不同类型的微应用资源有不同的安全等级要求,比如图片敏感度较低,资源包敏感度则较高,采用了图片由客户端拼接下载URL而资源包统一由服务端根据时间戳算法生成返回下载URL,同时厂家节点配置资源包检验URL合法性而图片类型不校验。主备CDN高可用:通过使用CDN供应商配置的系统全局参数来控制各个业务逻辑点,从而在主CDN故障后切换到备CDN提供了一种手段,而且切换过渡期会由原有交易模式(即不通过CDN节点的资源获取(下载)模式)来保证微应用的下载可用性。定时器主动预热新版本微应用:手机微应用发布新版本的业务逻辑不做改动,把预热逻辑解耦到定时器,由定时器统一调用服务端的对外预热接口,从开放区的联机AP向配置了resolve.conf的DMZ Apache,实现访问阿里云或网宿厂家的Restful接口。解决第一次访问回源带宽压力过大的问题。双栈支持回源访问:同时基于V4网络与IPv6网络进行了改造,客户双栈访问打开微应用,都可以进行微应用的CDN加速。白名单控制CDN加速:对于某些微应用采用白名单的方式,允许部分白名单访问内的用户走CDN,其他用户只走原有的交易,灰度验证CDN加速,验证效果后统一放开。软连接模式和真实路径模式下载访问URL:采用真实路径下载访问容量暴露资源在NAS的保存路径,给黑产留下隐患,特别对CDN路径信息进行了MD5加密,并创建了软连接,使下载访问URL更安全。
图4是根据本申请实施例的资源获取装置的主要单元的示意图。如图4所示,资源获取装置包括接收单元401、验证单元402、资源包获取单元403和解析单元404。
接收单元401,被配置成接收资源获取请求,进而基于资源获取请求生成对应的时间戳防盗链;
验证单元402,被配置成基于时间戳防盗链定位目标内容分发节点,以调用目标内容分发节点基于时间戳防盗链,对资源获取请求进行验证;
资源包获取单元403,被配置成响应于确定验证失败并且确定存在资源包更新,调用目标内容分发节点,以获取更新的资源包;
解析单元404,被配置成解析更新的资源包,以获取目标资源。
在一些实施例中,接收单元进一步被配置成:基于资源获取请求确定待获取资源的类型;基于待获取资源类型生成对应的时间戳防盗链。
在一些实施例中,接收单元401进一步被配置成:响应于确定待获取资源的类型为图片,获取资源获取请求对应的内容分发网络加速域名和资源保存文件路径,进而拼接内容分发网络加速域名和资源保存文件路径,生成时间戳防盗链。
在一些实施例中,接收单元401进一步被配置成:响应于确定待获取资源的类型为资源包,获取内容分发服务的系统参数;基于资源获取请求,确定对应的资源获取加密串;调用时间戳算法,以基于系统参数和资源获取加密串生成对应的时间戳防盗链。
在一些实施例中,验证单元402进一步被配置成:确定时间戳防盗链中的资源保存文件路径;基于预设的路径与内容分发节点的对应关系,确定资源保存文件路径对应的内容分发节点,进而将确定出的内容分发节点确定为目标内容分发节点。
在一些实施例中,验证单元402进一步被配置成:确定时间戳防盗链中的预设过期时间;响应于确定预设过期时间到达,返回验证失败信息。
在一些实施例中,验证单元402进一步被配置成:确定时间戳防盗链中的预设过期时间和校验码;响应于确定预设过期时间未到达且校验码错误,返回验证失败信息。
在一些实施例中,资源获取装置还包括图4中未示出的请求生成单元,被配置成:接收应用开启请求,获取应用对应的最新版本标识;确定本地缓存的资源包对应的本地版本标识,进而将最新版本标识与本地版本标识进行比较;响应于确定最新版本标识与本地版本标识不一致,基于最新版本标识生成对应的资源获取请求。
在一些实施例中,资源包获取单元403进一步被配置成:确定内容分发服务的开关标识、待开启应用的下载标识和下架标识;响应于确定开关标识为第一预设值、下载标识为第二预设值、下架标识为第三预设值,触发资源包获取进程。
在一些实施例中,资源包获取单元403进一步被配置成:获取应用白名单,响应于确定待开启应用位于白名单中,触发基于内容分发服务的资源包获取进程。
在一些实施例中,资源包获取单元403进一步被配置成:调用定时器,以调用预热接口进行更新的资源包的预热。
需要说明的是,在本申请资源获取方法和资源获取装置在具体实施内容上具有相应关系,故重复内容不再说明。
图5示出了可以应用本申请实施例的资源获取方法或资源获取装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备501、502、503可以是具有资源获取处理屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所提交的资源获取请求提供支持的后台管理服务器(仅为示例)。后台管理服务器可以通过接收资源获取请求,进而基于资源获取请求生成对应的时间戳防盗链;基于时间戳防盗链定位目标内容分发节点,以调用目标内容分发节点基于时间戳防盗链,对资源获取请求进行验证;响应于确定验证失败并且确定存在资源包更新,调用目标内容分发节点,以获取更新的资源包;解析更新的资源包,以获取目标资源。从而可以保证能够快速、准确地获取最新的资源。
需要说明的是,本申请实施例所提供的资源获取方法一般由服务器505执行,相应地,资源获取装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本申请实施例的终端设备的计算机系统600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM603中,还存储有计算机系统600操作所需的各种程序和数据。CPU601、ROM602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶征信授权查询处理器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本申请公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、验证单元、资源包获取单元和解析单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备通过接收资源获取请求,进而基于资源获取请求生成对应的时间戳防盗链;基于时间戳防盗链定位目标内容分发节点,以调用目标内容分发节点基于时间戳防盗链,对资源获取请求进行验证;响应于确定验证失败并且确定存在资源包更新,调用目标内容分发节点,以获取更新的资源包;解析更新的资源包,以获取目标资源。
根据本申请实施例的技术方案,从而可以保证能够快速、准确地获取最新的资源。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (14)
1.一种资源获取方法,其特征在于,包括:
接收资源获取请求,进而基于所述资源获取请求生成对应的时间戳防盗链;
基于所述时间戳防盗链定位目标内容分发节点,以调用所述目标内容分发节点基于所述时间戳防盗链,对所述资源获取请求进行验证;
响应于确定验证失败并且确定存在资源包更新,调用所述目标内容分发节点,以获取更新的资源包;
解析所述更新的资源包,以获取目标资源。
2.根据权利要求1所述的方法,其特征在于,所述基于所述资源获取请求生成对应的时间戳防盗链,包括:
基于所述资源获取请求确定待获取资源的类型;
基于所述待获取资源类型生成对应的时间戳防盗链。
3.根据权利要求2所述的方法,其特征在于,所述基于所述待获取资源的类型生成对应的时间戳防盗链,包括:
响应于确定所述待获取资源的类型为图片,获取所述资源获取请求对应的内容分发网络加速域名和资源保存文件路径,进而拼接所述内容分发网络加速域名和所述资源保存文件路径,生成时间戳防盗链。
4.根据权利要求2所述的方法,其特征在于,所述基于所述待获取资源的类型生成对应的时间戳防盗链,包括:
响应于确定所述待获取资源的类型为资源包,获取内容分发服务的系统参数;
基于所述资源获取请求,确定对应的资源获取加密串;
调用时间戳算法,以基于所述系统参数和所述资源获取加密串生成对应的时间戳防盗链。
5.根据权利要求1所述的方法,其特征在于,所述基于所述时间戳防盗链定位目标内容分发节点,包括:
确定所述时间戳防盗链中的资源保存文件路径;
基于预设的路径与内容分发节点的对应关系,确定所述资源保存文件路径对应的内容分发节点,进而将确定出的内容分发节点确定为目标内容分发节点。
6.根据权利要求1所述的方法,其特征在于,所述对所述资源获取请求进行验证,包括:
确定所述时间戳防盗链中的预设过期时间;
响应于确定所述预设过期时间到达,返回验证失败信息。
7.根据权利要求1所述的方法,其特征在于,所述对所述资源获取请求进行验证,包括:
确定所述时间戳防盗链中的预设过期时间和校验码;
响应于确定所述预设过期时间未到达且所述校验码错误,返回验证失败信息。
8.根据权利要求1所述的方法,其特征在于,在所述接收资源获取请求之前,所述方法还包括:
接收应用开启请求,获取应用对应的最新版本标识;
确定本地缓存的资源包对应的本地版本标识,进而将所述最新版本标识与所述本地版本标识进行比较;
响应于确定所述最新版本标识与所述本地版本标识不一致,基于所述最新版本标识生成对应的资源获取请求。
9.根据权利要求1所述的方法,其特征在于,在所述获取更新的资源包之前,所述方法还包括:
确定内容分发服务的开关标识、待开启应用的下载标识和下架标识;
响应于确定所述开关标识为第一预设值、所述下载标识为第二预设值、所述下架标识为第三预设值,触发资源包获取进程。
10.根据权利要求1所述的方法,其特征在于,在所述获取更新的资源包之前,所述方法还包括:
获取应用白名单,响应于确定待开启应用位于所述白名单中,触发基于内容分发服务的资源包获取进程。
11.根据权利要求1所述的方法,其特征在于,在所述接收资源获取请求之前,所述方法还包括:
调用定时器,以调用预热接口进行更新的资源包的预热。
12.一种资源获取装置,其特征在于,包括:
接收单元,被配置成接收资源获取请求,进而基于所述资源获取请求生成对应的时间戳防盗链;
验证单元,被配置成基于所述时间戳防盗链定位目标内容分发节点,以调用所述目标内容分发节点基于所述时间戳防盗链,对所述资源获取请求进行验证;
资源包获取单元,被配置成响应于确定验证失败并且确定存在资源包更新,调用所述目标内容分发节点,以获取更新的资源包;
解析单元,被配置成解析所述更新的资源包,以获取目标资源。
13.一种资源获取电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-11中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110893184.9A CN113568643A (zh) | 2021-08-04 | 2021-08-04 | 一种资源获取方法、装置、电子设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110893184.9A CN113568643A (zh) | 2021-08-04 | 2021-08-04 | 一种资源获取方法、装置、电子设备及计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113568643A true CN113568643A (zh) | 2021-10-29 |
Family
ID=78170506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110893184.9A Pending CN113568643A (zh) | 2021-08-04 | 2021-08-04 | 一种资源获取方法、装置、电子设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113568643A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115021998A (zh) * | 2022-05-27 | 2022-09-06 | 福建天晴数码有限公司 | 一种静态资源双重防盗链的方法及系统 |
CN115297037A (zh) * | 2021-04-19 | 2022-11-04 | 中国移动通信集团安徽有限公司 | 拨测方法、装置、设备及存储介质 |
CN116339767A (zh) * | 2022-05-10 | 2023-06-27 | 广州南天电脑系统有限公司 | 应用资源配置方法、装置、计算机设备和存储介质 |
CN117040746A (zh) * | 2023-10-10 | 2023-11-10 | 联通在线信息科技有限公司 | 一种cdn客户端加密防盗链实现方法及电子设备 |
-
2021
- 2021-08-04 CN CN202110893184.9A patent/CN113568643A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115297037A (zh) * | 2021-04-19 | 2022-11-04 | 中国移动通信集团安徽有限公司 | 拨测方法、装置、设备及存储介质 |
CN116339767A (zh) * | 2022-05-10 | 2023-06-27 | 广州南天电脑系统有限公司 | 应用资源配置方法、装置、计算机设备和存储介质 |
CN116339767B (zh) * | 2022-05-10 | 2024-03-19 | 广州南天电脑系统有限公司 | 应用资源配置方法、装置、计算机设备和存储介质 |
CN115021998A (zh) * | 2022-05-27 | 2022-09-06 | 福建天晴数码有限公司 | 一种静态资源双重防盗链的方法及系统 |
CN115021998B (zh) * | 2022-05-27 | 2023-08-11 | 福建天晴数码有限公司 | 一种静态资源双重防盗链的方法及系统 |
CN117040746A (zh) * | 2023-10-10 | 2023-11-10 | 联通在线信息科技有限公司 | 一种cdn客户端加密防盗链实现方法及电子设备 |
CN117040746B (zh) * | 2023-10-10 | 2024-02-27 | 联通在线信息科技有限公司 | 一种cdn客户端加密防盗链实现方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113568643A (zh) | 一种资源获取方法、装置、电子设备及计算机可读介质 | |
KR101716743B1 (ko) | 복수의 액세스 제어 클라이언트를 지원하는 모바일 장치, 및 대응 방법들 | |
CN108369622B (zh) | 软件容器注册表服务 | |
US8549326B2 (en) | Method and system for extending encrypting file system | |
US8336089B1 (en) | Method and apparatus for providing authentication and encryption services by a software as a service platform | |
US7747724B2 (en) | System and method of device-to-server registration | |
US20160191645A1 (en) | Containerizing Web Applications for Managed Execution | |
US20140108793A1 (en) | Controlling mobile device access to secure data | |
JP6603730B2 (ja) | フィールドプログラマブルビジネスロジックでのアプリケーションのラッピング | |
CN113221166A (zh) | 一种获取区块链数据的方法、装置、电子设备及存储介质 | |
EP3007061A1 (en) | Application execution program, application execution method, and information processing terminal device in which application is executed | |
US9471533B1 (en) | Defenses against use of tainted cache | |
CN112286898B (zh) | 基于分布式文件边缘节点的配置文件方法和装置 | |
WO2019071650A1 (zh) | 一种安全元件中的应用的升级方法及相关设备 | |
CN113987563A (zh) | 数据处理方法、系统、产品、设备及存储介质 | |
EP2815553B1 (en) | Mobile apparatus supporting a plurality of access control clients, and corresponding methods | |
CN113835642A (zh) | 一种基于ipfs的分布式存储网络构建方法及分布式存储网络 | |
US20190087207A1 (en) | Accessing Conflicting Frameworks and Classes | |
CN116032514B (zh) | 一种分布式高并发数据安全加解密的方法 | |
CN102375953A (zh) | 软件认证方法和软件认证设备 | |
EP1413158B1 (fr) | Procede d'acces a un service specifique propose par un operateur virtuel et carte a puce d'un dispositif correspondant | |
CN116339767B (zh) | 应用资源配置方法、装置、计算机设备和存储介质 | |
CN117040746B (zh) | 一种cdn客户端加密防盗链实现方法及电子设备 | |
CN116112172B (zh) | Android客户端gRPC接口安全校验的方法和装置 | |
CN118101474A (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 |