CN115185907A - 一种前端资源管理方法、装置、设备以及存储介质 - Google Patents
一种前端资源管理方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN115185907A CN115185907A CN202210735265.0A CN202210735265A CN115185907A CN 115185907 A CN115185907 A CN 115185907A CN 202210735265 A CN202210735265 A CN 202210735265A CN 115185907 A CN115185907 A CN 115185907A
- Authority
- CN
- China
- Prior art keywords
- file
- target
- resource
- address
- uploading
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1727—Details of free space management performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种前端资源管理方法、装置、设备以及存储介质,涉及互联网技术领域。具体实现方案为:接收针对目标项目的管理请求;其中,所述管理请求中携带有目标项目中的资源文件的存储地址以及上传地址;响应于所述管理请求,利用所述存储地址,配置目标项目对应的文件存储地址,以及利用所述上传地址,配置目标项目对应的文件上传地址;当检测到待执行的目标项目的资源上线任务时,确定所述资源上线任务所指示的目标资源文件的文件标识;利用所述目标资源文件的文件标识,从所述文件存储地址处获取所述目标资源文件;将所述目标资源文件,上传到所述文件上传地址。可见,通过本方案,可以对前端资源进行轻量、系统的管理。
Description
技术领域
本发明涉及互联网技术领域,特别是涉及一种前端资源管理方法、装置、设备以及存储介质。
背景技术
随着互联网的发展,前端业务的业务需求也变得日益复杂和多样,为了满足复杂多样的业务需求,在进行项目开发时,需要开发针对各种需求的资源文件,导致针对项目的资源文件的管理愈来愈复杂。
目前,开发完成的项目在发布过程中,存在资源上线、资源更新、支持灰度测试以及A/B测试等多种发布需求。其中,资源上线、资源更新分别是指在项目的上线、更新过程中,将项目的待上线、待更新的相关资源文件发布到CDN(Content Delivery Network,内容分发网络)服务器;而灰度测试、A/B测试需要在服务器端进行流量分发,同时配合前端的针对该项目的相关资源文件的版本的管理。
相关技术中,针对前端资源管理而言,即针对前端业务开发的项目中的资源文件的管理而言,无论是在资源上线、资源更新过程中,还是在进行灰度测试、A/B测试的过程中,均缺少对项目的资源文件进行有效管理的方法,从而导致针对整个发布需求的处理流程较重。因此,亟需一种系统的、轻量的前端资源管理方法。
发明内容
本发明实施例的目的在于提供一种前端资源管理方法、装置、设备以及存储介质,以实现对前端资源进行轻量、系统的管理。具体技术方案如下:
第一方面,本发明实施例提供了一种前端资源管理方法,应用于资源管理平台,所述方法包括:
接收针对目标项目的管理请求;其中,所述管理请求中携带有所述目标项目中的资源文件的存储地址以及上传地址;
响应于所述管理请求,利用所述存储地址,配置所述目标项目对应的文件存储地址,以及利用所述上传地址,配置所述目标项目对应的文件上传地址;
当检测到待执行的所述目标项目的资源上线任务时,确定所述资源上线任务所指示的目标资源文件的文件标识;
利用所述目标资源文件的文件标识,从所述文件存储地址处获取所述目标资源文件;
将所述目标资源文件,上传到所述文件上传地址。
可选地,所述目标项目中的资源文件的存储地址为预先创建的目标代码库的地址;其中,所述目标代码库用于存储所述目标项目中的资源文件。
可选地,所述上传地址为内容分发网络CDN服务器的网络地址;
所述将所述目标资源文件,上传到所述文件上传地址,包括:
将所述目标资源文件,上传到所述CDN服务器的网络地址。
可选地,所述将所述目标资源文件,上传到所述文件上传地址,包括:
获取所述目标资源文件的上线版本号;
将携带有所述上线版本号的目标资源文件,上传到所述文件上传地址。
可选地,在所述将携带有所述上线版本号的目标资源文件,上传到所述文件上传地址之前,所述方法还包括:
利用历史版本号,对所述上线版本号进行指定校验,得到校验结果;其中,所述指定校验用于校验所述上线版本号是否唯一;所述历史版本号为针对所述目标项目中的任一资源文件的历史上线版本号;
若所述校验结果表征所述上线版本号唯一,执行所述将携带有所述上线版本号的目标资源文件,上传到所述文件上传地址的步骤。
第二方面,本发明实施例提供了一种前端资源管理装置,应用于资源管理平台,所述装置包括:
接收模块,用于接收针对目标项目的管理请求;其中,所述管理请求中携带有所述目标项目中的资源文件的存储地址以及上传地址;
配置模块,用于响应于所述管理请求,利用所述存储地址,配置所述目标项目对应的文件存储地址,以及利用所述上传地址,配置所述目标项目对应的文件上传地址;
确定模块,用于当检测到待执行的所述目标项目的资源上线任务时,确定所述资源上线任务所指示的目标资源文件的文件标识;
获取模块,用于利用所述目标资源文件的文件标识,从所述文件存储地址处获取所述目标资源文件;
上传模块,用于将所述目标资源文件,上传到所述文件上传地址。
可选地,所述目标项目中的资源文件的存储地址为预先创建的目标代码库的地址;其中,所述目标代码库用于存储所述目标项目中的资源文件。
可选地,所述上传地址为内容分发网络CDN服务器的网络地址;
所述上传模块,具体用于:
将所述目标资源文件,上传到所述CDN服务器的网络地址。
可选地,所述上传模块,包括:
获取子模块,用于获取所述目标资源文件的上线版本号;
上传子模块,用于将携带有所述上线版本号的目标资源文件,上传到所述文件上传地址。
可选地,所述上传模块还包括:
校验子模块,用于在所述上传子模块执行将携带有所述上线版本号的目标资源文件,上传到所述文件上传地址之前,利用历史版本号,对所述上线版本号进行指定校验,得到校验结果;其中,所述指定校验用于校验所述上线版本号是否唯一;所述历史版本号为针对所述目标项目中的任一资源文件的历史上线版本号;
判断子模块,用于若所述校验结果表征所述上线版本号唯一,触发所述上传子模块。
第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述的前端资源管理方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的前端资源管理方法的步骤。
本发明实施例有益效果:
本发明实施例提供的方案,当资源管理平台接收到针对目标项目的管理请求,利用该管理请求中携带的目标项目中的资源文件的存储地址以及上传地址,配置目标项目对应的文件存储地址以及文件上传地址。当检测到待执行的目标项目的资源上线任务时,根据该资源上线任务所指示的目标资源文件的文件标识,从该文件存储地址处获取该目标资源文件。从而将该目标资源文件,上传到该文件上传地址。由于资源管理平台中配置有目标项目的文件存储地址及文件上传地址,因此,在检测到关于目标项目的资源上线任务时,可以从该文件存储地址中获取该目标项目中的目标资源文件,并将其上传到文件上传地址,从而实现该目标资源文件的自动上线。可见,该资源管理平台可以在检测到上线任务时,直接将该上线任务所指示的目标资源文件上线,不需要用户进行额外的操作,大大简化上线流程,因此,通过本方案,可以实现对前端资源的轻量、系统的管理。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例所提供的一种前端资源管理方法的流程图;
图2为实现本发明实施例所提供的前端资源管理方法的项目配置的流程图;
图3为本发明实施例所提供的前端资源管理方法的一个具体示例的流程图;
图4为本发明实施例所提供的前端资源管理方法的另一个具体示例的流程图;
图5为本发明实施例所提供的前端资源管理装置的结构示意图;
图6为本发明实施例所提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
下面,首先对本发明实施例中所涉及的专业术语进行介绍:
Gitlab代码库:部署在本地服务器的代码存储仓库,用于存储代码文件;
Jenkins:一个开源的、提供友好操作界面的持续集成工具;
灰度测试:在项目正式发布前,选择特定人群试用,逐步扩大其试用者数量,以便及时发现和纠正其中的问题;
A/B测试:为项目制作两个或多个版本,在同一时间维度,分别让组成成分相同或相似的访客群组随机的访问这些版本,收集各群组的用户体验数据和业务数据,最后分析、评估出最好版本进行采用;
静态资源:可以理解为前端的固定页面,这里面包含后缀为“.html”、“.css”、“.js”的文件以及图片等等,即不需要查数据库也不需要程序处理,直接就能够显示的页面。
随着互联网的发展,前端业务的业务需求也变得日益复杂和多样,在进行项目开发时,需要开发针对各种需求的资源文件,导致进行项目开发的工作人员也面对十分复杂的资源文件管理问题。在实际应用中,开发完成的项目在发布过程中,存在资源上线、资源更新、支持灰度测试以及A/B测试等多种发布需求。其中,资源上线、资源更新分别是指在项目的上线、更新过程中,将项目的待上线、待更新的相关资源文件发布到CDN(ContentDelivery Network,内容分发网络)服务器;而灰度测试、A/B测试需要在服务器端进行流量分发,同时配合前端的针对该项目的相关资源文件的版本的管理。
相关技术中,针对前端资源管理而言,即针对前端业务开发的项目中的资源文件的管理而言,无论是在资源上线、资源更新过程中,还是在进行灰度测试、A/B测试的过程中,均缺少对项目的资源文件进行有效管理的方法,从而导致针对整个发布需求的处理流程较繁琐。因此,亟需一种系统的、轻量的前端资源管理方法。
基于上述内容,为了对前端资源管理进行系统的、轻量的管理,本发明实施例提供了一种前端资源管理方法、装置、设备以及存储介质。
下面,首先对本发明实施例所提供的一种前端资源管理方法进行介绍。
本发明实施例所提供的一种前端资源管理方法应用于资源管理平台,所述资源管理平台可以与CDN服务器相通信。在具体应用中,实现该前端资源管理方法的资源管理平台可以为终端设备中的静态资源管理平台,该终端设备可以是平板电脑、台式电脑,等等。
具体而言,该前端资源管理方法的执行主体可以为前端资源管理装置。示例性的,当该前端资源管理方法应用于终端设备时,该前端资源管理装置可以为运行于资源管理平台中的、用于进行前端资源管理的功能插件,例如:静态资源管理平台中用于静态资源版本管理的插件。在实际应用中,该插件可以是该资源管理平台中开发的Jenkins脚本,该Jenkins脚本在执行时,实现对前端资源进行发布的流程。
其中,本发明实施例所提供的一种前端资源管理方法,可以包括如下步骤:
接收针对目标项目的管理请求;其中,所述管理请求中携带有所述目标项目中的资源文件的存储地址以及上传地址;
响应于所述管理请求,利用所述存储地址,配置所述目标项目对应的文件存储地址,以及利用所述上传地址,配置所述目标项目对应的文件上传地址;
当检测到待执行的所述目标项目的资源上线任务时,确定所述资源上线任务所指示的目标资源文件的文件标识;
利用所述目标资源文件的文件标识,从所述文件存储地址处获取所述目标资源文件;
将所述目标资源文件,上传到所述文件上传地址。
本实施例所提供的方案中,当资源管理平台接收到针对目标项目的管理请求,利用该管理请求中携带的目标项目中的资源文件的存储地址以及上传地址,配置目标项目对应的文件存储地址以及文件上传地址。当检测到待执行的目标项目的资源上线任务时,根据该资源上线任务所指示的目标资源文件的文件标识,从该文件存储地址处获取该目标资源文件。从而将该目标资源文件,上传到该文件上传地址。由于资源管理平台中配置有目标项目的文件存储地址及文件上传地址,因此,在检测到关于目标项目的资源上线任务时,可以从该文件存储地址中获取该目标项目中的目标资源文件,并将其上传到文件上传地址,从而实现该目标资源文件的自动上线。可见,该资源管理平台可以在检测到上线任务时,直接将该上线任务所指示的目标资源文件上线,不需要用户进行额外的操作,大大简化上线流程,因此,通过本方案,可以实现对前端资源的轻量、系统的管理。
下面结合附图,对本发明实施例所提供的前端资源管理方法进行介绍。
如图1所示,本发明实施例所提供的前端资源管理方法,应用于资源管理平台,所述方法可以包括步骤S101-S105:
S101,接收针对目标项目的管理请求;其中,该管理请求中携带有该目标项目中的资源文件的存储地址以及上传地址;
本实施例中,资源管理平台用于管理前端资源,当需要对目标项目中的资源文件进行管理时,可以在资源管理平台的前端界面中提交针对目标项目的管理请求,资源管理平台的服务器端接收该管理请求。并且,该管理请求中携带有该目标项目中的资源文件的存储地址以及上传地址,以在后续利用该存储地址以及上传地址对该目标项目中的资源文件进行管理。
示例性的,用户可以在资源管理平台的前端界面点击新建目标项目的按钮,然后填写针对目标项目的相关信息的表单,表单内容可以包括该目标项目的项目名称、目标项目中的资源文件的存储地址以及上传地址,等等。在填写完表单后提交该表单,即在资源管理平台的前端界面中提交针对该目标项目的管理请求,此时,资源管理平台的服务器端接收该管理请求。
S102,响应于该管理请求,利用该存储地址,配置该目标项目对应的文件存储地址,以及利用该上传地址,配置该目标项目对应的文件上传地址;
本实施例中,当资源管理平台接收到针对目标项目的管理请求,可以在该资源管理平台中为该目标项目进行相关配置。即利用该管理请求中携带的存储地址以及上传地址,为该目标项目配置文件存储地址以及文件上传地址。其中,该文件存储地址为该目标项目中资源文件的获取地址。示例性的,该获取地址可以是存储该目标项目的资源文件的服务器或终端设备中的访问地址。该文件上传地址为该目标项目中资源文件的上传地址。示例性的,该上传地址可以是该目标项目中资源文件的部署地址,例如:部署该目标项目的资源文件的服务器中的访问地址。
可以理解的是,针对资源管理平台中管理的每一项目而言,响应于该管理请求,利用该项目对应的存储地址为该项目配置文件存储地址,可以在后续检测到针对该项目中的资源文件进行上线的资源上线任务时,从该文件存储地址处获取到该资源上线任务所指示的资源文件;利用该项目对应的上传地址为该项目配置文件上传地址,可以将该项目中待上线的资源文件,上传到该文件上传地址进行上线,并且将属于同一项目的不同版本的资源文件上传到同一文件上传地址,可以使得在该文件上传地址中针对具有各种版本号的资源文件进行统一管理。
S103,当检测到待执行的目标项目的资源上线任务时,确定该资源上线任务所指示的目标资源文件的文件标识;
本实施例中,用户可以在资源管理平台中创建资源上线任务,并且在创建该资源上线任务时,指定待上线的目标资源文件,例如:在创建该资源上线任务时,在任务创建界面中填写待上线的资源文件的文件标识以及所属的目标项目,该待上线的资源文件即为该资源上线任务所指示的目标资源文件。当该资源管理平台检测到该待执行的目标项目的资源上线任务时,可以获取该资源上线任务中所填写的文件标识,从而确定该资源上线任务所指示的目标资源文件的文件标识。
需要说明的是,针对资源更新而言,本质上就是上线新的资源文件覆盖旧的线上资源文件的过程,对于资源管理平台而言,仍然是将资源文件进行上线;并且针对灰度测试以及A/B测试而言,本质上就是对不同版本的资源文件进行测试分析,对于资源管理平台而言,只需将不同版本的资源文件进行上线,具体的分析过程可以配合其他的后端工具实现。因此,该资源上线任务可以是针对前述资源上线、资源更新、灰度测试以及A/B测试等任一需求时,所创建的任务。
另外,该目标项目为资源管理平台中进行管理的、前端业务的开发项目。该目标项目中可以包含有一个或多个前端资源文件,在创建目标项目的资源上线任务时,可以指示对该目标项目中的任一资源文件进行上线,该资源上线任务所指示的待上线的资源文件即为目标资源文件。
并且,目标资源文件的文件标识的具体内容可以存在多种。示例性的,该目标资源文件的文件标识,可以是该文件的文件名称、索引地址等可以唯一确定该目标资源文件的标识。在实际应用中,该目标资源文件可以是静态资源文件,即文件名称后缀为“.html”、“.css”、“.js”等文件。
示例性的,检测是否有待执行的资源上线任务的方式,可以是:通过该资源管理平台中设置的、用于监听资源上线任务的事件的组件,对资源上线任务进行监听。本发明实施例并不对检测是否有待执行的资源上线任务的具体实现方式进行限定。另外,需要说明的是,用户在资源管理平台中创建资源上线任务时,该资源管理平台可以对该用户的账号权限进行校验,即判断该用户在该资源管理平台中的登录账号是否为具有创建资源上线任务资格的账号,当校验结果为具有该资格时,才可以创建该资源上线任务,从而可以保证该资源管理平台的安全性。
S104,利用该目标资源文件的文件标识,从该文件存储地址处获取该目标资源文件;
可以理解的是,由于目标项目的文件存储地址为该目标项目中资源文件的获取地址,因此,可以从该文件存储地址处获取该目标项目中的目标资源文件。其中,获取目标资源文件的方式可以是:利用该目标资源文件的文件标识,从该文件存储地址处查找与该文件标识相匹配的资源文件,该相匹配的资源文件即为目标资源文件,从而获取该目标资源文件。
S105,将该目标资源文件,上传到该文件上传地址。
本实施例中,将待上线的资源文件上传到该资源文件所属的项目的文件上传地址,即可认为该资源文件上线成功,后续用户可以通过访问该文件上传地址,访问该上线的资源文件。可以理解的是,在获取到该目标资源文件后,可以根据该目标项目的文件上传地址,将该目标资源文件上传到该文件上传地址,从而完成该目标资源文件的上线。
另外,需要说明的是,该目标资源文件可以是一个资源文件,也可以是多个资源文件,当该目标资源文件是多个资源文件时,将该目标资源文件,上传到该文件上传地址,可以是:将该目标资源文件打包为一个资源文件,并上传到文件上传地址。在实际应用中,该目标资源文件往往为多个,其共同构成一个前端的固定页面,在将该目标资源文件上传到文件上传地址之前,可以将其编译生成一个SDK(Software Development Kit,软件开发工具包),并上传到文件上传地址。
本实施例所提供的方案中,当资源管理平台接收到针对目标项目的管理请求,利用该管理请求中携带的目标项目中的资源文件的存储地址以及上传地址,配置目标项目对应的文件存储地址以及文件上传地址。当检测到待执行的目标项目的资源上线任务时,根据该资源上线任务所指示的目标资源文件的文件标识,从该文件存储地址处获取该目标资源文件。从而将该目标资源文件,上传到该文件上传地址。由于资源管理平台中配置有目标项目的文件存储地址及文件上传地址,因此,在检测到关于目标项目的资源上线任务时,可以从该文件存储地址中获取该目标项目中的目标资源文件,并将其上传到文件上传地址,从而实现该目标资源文件的自动上线。可见,该资源管理平台可以在检测到上线任务时,直接将该上线任务所指示的目标资源文件上线,不需要用户进行额外的操作,大大简化上线流程,因此,通过本方案,可以实现对前端资源的轻量、系统的管理。
可选地,在本发明的另一实施例中,上述步骤S105中将该目标资源文件,上传到该文件上传地址,可以包括步骤A1-A2:
A1,获取该目标资源文件的上线版本号;
A2,将携带有该上线版本号的目标资源文件,上传到该文件上传地址。
本实施例中,用户在资源管理平台中创建针对目标资源文件的资源上线任务时,可以在该资源上线任务中填写上线版本号,在将该目标资源文件上传到文件上传地址时,可以将携带有该上线版本号的目标资源文件,上传到该文件上传地址,从而方便后续根据该上线版本号对该上线的目标资源文件进行管理。
可以理解的是,前端业务的开发项目在开发完成后,可以将该项目进行发布,即该项目中的资源文件进行上线,每次上线资源文件时携带有该次上线的上线版本号,后续可以根据该上线版本号查找到对应的资源文件,从而方便对上线的资源文件的管理。示例性的,在实际应用过程中,创建的资源上线任务中可以填写该项目中的多个资源文件,并填写该资源上线任务的上线版本号,资源管理平台可以将该多个资源文件打包后,与该上线版本号一起上传到文件上传地址,从而可以根据该上线版本号对该上线的资源文件进行管理。
另外,若某一资源上线任务的上线版本号不唯一,则该资源上线任务所指示的资源文件上线后,会覆盖之前具有相同版本号的资源文件,从而后续若需要进行版本回滚时,无法回滚到该被覆盖的版本。其中,版本回滚用于在当前线上资源文件需要回溯到某一历史版本时,根据该历史版本的版本号,将该版本号对应的资源文件进行上线。
基于上述的描述可知,为了保证版本回滚,可选地,在一种实现方式中,在将携带有该上线版本号的目标资源文件,上传到该文件上传地址之前,所述方法还包括步骤B1-B2:
B1,利用历史版本号,对该上线版本号进行指定校验,得到校验结果;其中,该指定校验用于校验该上线版本号是否唯一;该历史版本号为针对该目标项目中的任一资源文件的历史上线版本号;
需要说明的是,在本实现方式中,资源管理平台可以对资源上线任务的相关信息进行记录,即从每次的资源上线任务的日志信息中,获取该次资源上线任务的相关信息,并将该相关信息记录到预先构建的数据库中。该相关信息可以包括:此次资源上线任务的执行人、执行时间、当前上线版本号、当前上线版本号的上一版本号,等等。
本实现方式中,可以从该预先构建的数据库中获取历史版本号,从而利用该历史版本号,对该上线版本号进行校验。示例性的,利用历史版本号,对该上线版本号进行指定校验的方式可以是:将该上线版本号与历史版本号中的各个字符进行比较,若该各个字符不完全相同,则该上线版本号唯一。需要说明的是,本发明实施例并不对该指定校验的方式进行限定。
B2,若该校验结果表征该上线版本号唯一,执行将携带有该上线版本号的目标资源文件,上传到该文件上传地址的步骤。
可以理解的是,当步骤B1得到的校验结果表征该上线版本号唯一时,将携带有该上线版本号的目标资源文件,上传到该文件上传地址,可以实现资源文件的非覆盖式发布,从而便于后续进行版本回滚等操作。
可见,通过本方案,通过将携带有上线版本号的目标资源文件,上传到文件上传地址,可以方便后续根据该上线版本号对该上线的目标资源文件进行管理。
可选地,在本发明的另一实施例中,该目标项目中的资源文件的存储地址为预先创建的目标代码库的地址;其中,该目标代码库用于存储该目标项目中的资源文件。
本实施例中,目标项目中的资源文件的存储地址可以为预先创建的目标代码库的地址,目标代码库的类型可以存在多种,例如:Gitlab代码库、Gitee代码库,等等。其中,Gitlab代码库、Gitee代码库为基于Git(开源的分布式版本控制系统)实现的在线代码托管仓库。可以理解的是,利用目标代码库存储目标项目中的资源文件,可以通过将目标代码库搭建在自己的服务器上的方式,实现对目标项目的私有化管理。
可见,通过本方案,可以实现对目标项目的私有化管理。
可选地,在本发明的另一实施例中,该上传地址为内容分发网络CDN服务器的网络地址;相应地,在该实施例中,上述步骤S105中将该目标资源文件,上传到该文件上传地址,包括:将该目标资源文件,上传到该CDN服务器的网络地址。
本实现方式中,文件上传地址为CDN服务器的网络地址,将该目标资源文件上传到该CDN服务器的网络地址,即可实现将该目标资源文件部署在该CDN服务器上。可以理解的是,将目标资源文件部署到该CDN服务器上,后续访问该目标资源文件时,由于CDN服务器可以就近提供用户最近的节点服务器上的缓存内容,从而可以大大加快用户访问的速度,缓解互联网的网络拥堵。
另外,需要说明的是,将目标资源文件上传到CDN服务器的网络地址时,还可以为该目标资源文件配置缓存有效时间,即通过该CDN服务器可以直接访问到该目标资源文件的时限。在实际应用中,该目标资源文件可以为前端的固定页面,通过在将该目标资源文件上传到CDN服务器上时,为该目标资源文件配置较长的缓存有效时间,用户可以不用每次加载该固定页面时都需要重新请求,从而可以提高页面性能。
可见,通过本方案,可以大大加快用户访问的速度。
为了更加清楚的理解本发明实施例的内容,下面结合图2、图3和图4对本发明实施例的两个具体示例进行介绍。
随着互联网的发展,进行前端业务开发的工作人员也不再只是做简单的页面开发这么简单,还需要面对的十分复杂的系统性问题,例如:如何清晰地梳理以及管理开发的项目。并且,开发完成的项目在发布时,面临资源更新、支持灰度测试、支持A/B测试等多种需求。
目前,针对前端资源的管理,集中在四个优化需求上:配置超长时间的本地缓存,以节省带宽,提高页面性能;采用内容摘要作为缓存更新依据,以实现精准的缓存控制;采取静态资源CDN部署,优化网络请求;更新资源发布路径实现非覆盖式发布,实现平滑升级。
针对以上问题以及优化需求,本发明实施例通过开发一种资源管理平台,对前端资源进行轻量、系统的管理,来解决前端资源的管理与发布的难点。本发明实施例的思路原理如下:
(1)通过在资源管理平台中为管理的目标项目接入项目中的前端资源,打通项目链路,实现项目可配置。并且,不依赖后端资源部署,实现独立控制前端资源的管理发布流程,有助于后续完成前端资源的自动化上线,防止出现人工执行的出错或遗漏行为导致线上事故,节省了人力的同时保障了上线稳定性。
(2)配置好的前端资源打通打包与发布的整体链路,实现一键式部署,提升开发效率。并且完善前端资源管理可视化,针对编译生成的SDK进行管理,控制测试、上线流程,对历史上线版本号进行记录入库,方便后续版本回滚以及订单快照、版本映射等。
(3)支持资源版本控制以及流量控制,可实现线上版本灵活控制以及多套资源进行对比实验,其中,流量控制即控制版本产生的流量通过一个漏斗分发到不同的下游。支持配置线上多资源以及灰度测试,可以精确定位目标人群,或迎合产品测试需求配合端上进行线上A/B测试。实现配置接口与后端解耦,通过更改配置代替发版上线,根据配置接口的变化来调整线上策略,后端只需要根据策略返回不同资源即可。
如图2所示,图示了在该资源管理平台中进行项目配置的流程图,包括如下步骤:
(1)在资源管理平台中新建项目,创建该项目的项目名称。
(2)为该项目配置前端资源、资源入口(对应于上文中的文件存储地址)及资源出口(对应于上文中的文件上传地址),即配置该项目中的前端资源、该项目的资源文件所存储的Gitlab代码库以及所上传的CDN服务器。
(3)为该项目连通自动化构建的Jenkins脚本。也就是,在该资源管理平台中,利用Jenkins提供的各种代码库流程构建的方法、工具,新建Jenkins脚本,该脚本在执行时用于实现:跳转到待定的Gitlab代码库;从该Gitlab代码库获取指定的资源文件并编译生成SDK;将该SDK上传到资源出口。其中,该待定的Gitlab代码库通过在接收到资源上线任务时,从该资源上线任务中所指示的项目的资源入口确定。具体地,该Jenkins脚本可以通过webhook触发钩子实现流水线pipeline构建,当我们进行接口触发时,即检测到资源上线任务时,可触发Jenkins脚本执行构建SDK操作以及部署操作。
(4)构建完成后,需要匹配前端资源,即对配置好的前端资源进行对比,防止上线资源的错乱以及缺失。保证项目资源入口及资源出口的一致性以及连通性。结束以上的工作,可以完成项目的配置,用户可在资源管理平台中看到该项目的配置,进而可以完成后续的上线操作。
如图3所示,在项目配置完成后,可以对项目中指定的资源文件进行上线。项目上线的过程可以包括:
(1)用户在资源管理平台中,根据该用户的账号权限新建针对待上线的目标资源文件的上线任务(对应于上文中的资源上线任务)。当资源管理平台检测到该上线任务时,确定该上线任务所指示的资源文件。另外,在新建该上线任务时,可以填写此次的上线版本号、上线备注等,并通过获取历史版本号,校验该上线版本号是否唯一。
(2)当检测到该上线任务时,触发执行Jenkins脚本,实现如下流程:从该目标资源文件所属的目标项目的Gitlab代码库中,获取该目标资源文件;将该目标资源文件打包为SDK,该SDK可以是本地编译打包的CSS文件(文件后缀为.css的文件)、JS文件(文件后缀为.js的文件)等资源文件;将该打包后的资源文件上传到CDN服务器。其中,在上传到CDN服务器时,可以对此次填写的上线版本号进行指定校验,校验结果表征该上线版本号唯一后,将携带版本信息的资源文件发布到CDN服务器,实现非覆盖式部署。在发布完成后,资源管理平台会创建上线记录并更新线上资源内容,即对此次上线版本号、上线操作用户以及上线时间等相关信息进行记录,并读取携带版本信息的资源文件来覆盖线上资源内容,实现平滑上线。另外,在该资源管理平台中,还可以对各个版本的上线状态进行标记,即通过记录的信息,查找到当前上线版本以及该版本的上一版本,并将该上一版本的上线状态标记为offline(下线),将当前上线版本的上线状态标记为online(上线)。从而,可以方便用户直观的了解各个版本的上线状态。
可以理解的是,在实现非覆盖式发布并记录每次上线任务的相关信息后,可以方便进行版本回滚的操作。如图4所示,图示了进行版本回滚的流程图,包括如下步骤:
(1)当接收到回滚到上一版本的指令,通过查找上线记录查找当前版本信息以及上一版本信息;
(2)读取携带上一版本信息的资源文件来覆盖线上资源内容,具体地,可通过携带上一版本号的资源地址读取该资源文件。其中,该资源地址即为该资源文件的名称。并对此次回滚版本号、回滚操作用户以及回滚时间等相关信息进行记录,并将该上一版本的上线状态标记为online,将当前版本的上线状态标记为offline。
为了更好的理解该回滚操作,下面结合具体的示例进行阐述。
当前线上资源内容为A版本的资源文件,即存在携带A版本信息的资源地址,这时需要进行B版本的上线,在将携带B版本信息的资源地址发布到CDN服务器时,创建上线记录。然后会用B版本的资源文件覆盖线上A版本的资源文件,并更新当前线上版本由A→B,A版本记录为B版本的上一版本,完成本次上线操作。如果后续发现线上B版本出现问题需要执行回滚操作,可以通过读取B版本的上一版本A版本的记录,通过获取携带A版本信息的资源文件来覆盖线上资源内容进行部署,并创建回滚操作日志,更新当前线上版本为B→A,完成回滚操作。
可见,通过本方案,通过Jenkins中的pipeline流水线实现按流程构建,打通构建链路,可以提升资源文件发布部署效率;每个版本按版本号存储,做到资源收敛;发布过程以及版本切换自动化,开发人员不直接接触服务器,流程简单,并且上线记录以及上线信息完全可视化;线上需要能同时生效多个版本,可以满足A/B测试、灰度测试等需求。
相应上述方法实施例,本发明实施例还提供了一种前端资源管理装置,如图5所示,所述装置包括:
接收模块510,用于接收针对目标项目的管理请求;其中,所述管理请求中携带有所述目标项目中的资源文件的存储地址以及上传地址;
配置模块520,用于响应于所述管理请求,利用所述存储地址,配置所述目标项目对应的文件存储地址,以及利用所述上传地址,配置所述目标项目对应的文件上传地址;
确定模块530,用于当检测到待执行的所述目标项目的资源上线任务时,确定所述资源上线任务所指示的目标资源文件的文件标识;
获取模块540,用于利用所述目标资源文件的文件标识,从所述文件存储地址处获取所述目标资源文件;
上传模块550,用于将所述目标资源文件,上传到所述文件上传地址。
可选地,所述目标项目中的资源文件的存储地址为预先创建的目标代码库的地址;其中,所述目标代码库用于存储所述目标项目中的资源文件。
可选地,所述上传地址为内容分发网络CDN服务器的网络地址;
所述上传模块,具体用于:
将所述目标资源文件,上传到所述CDN服务器的网络地址。
可选地,所述上传模块,包括:
获取子模块,用于获取所述目标资源文件的上线版本号;
上传子模块,用于将携带有所述上线版本号的目标资源文件,上传到所述文件上传地址。
可选地,所述上传模块还包括:
校验子模块,用于在所述上传子模块执行将携带有所述上线版本号的目标资源文件,上传到所述文件上传地址之前,利用历史版本号,对所述上线版本号进行指定校验,得到校验结果;其中,所述指定校验用于校验所述上线版本号是否唯一;所述历史版本号为针对所述目标项目中的任一资源文件的历史上线版本号;
判断子模块,用于若所述校验结果表征所述上线版本号唯一,触发所述上传子模块。
本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现上述实施例中任一所述的前端资源管理方法的步骤。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一所述的前端资源管理方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的前端资源管理方法的步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种前端资源管理方法,其特征在于,应用于资源管理平台,所述方法包括:
接收针对目标项目的管理请求;其中,所述管理请求中携带有所述目标项目中的资源文件的存储地址以及上传地址;
响应于所述管理请求,利用所述存储地址,配置所述目标项目对应的文件存储地址,以及利用所述上传地址,配置所述目标项目对应的文件上传地址;
当检测到待执行的所述目标项目的资源上线任务时,确定所述资源上线任务所指示的目标资源文件的文件标识;
利用所述目标资源文件的文件标识,从所述文件存储地址处获取所述目标资源文件;
将所述目标资源文件,上传到所述文件上传地址。
2.根据权利要求1所述的方法,其特征在于,所述目标项目中的资源文件的存储地址为预先创建的目标代码库的地址;其中,所述目标代码库用于存储所述目标项目中的资源文件。
3.根据权利要求1或2所述的方法,其特征在于,所述上传地址为内容分发网络CDN服务器的网络地址;
所述将所述目标资源文件,上传到所述文件上传地址,包括:
将所述目标资源文件,上传到所述CDN服务器的网络地址。
4.根据权利要求1或2所述的方法,其特征在于,所述将所述目标资源文件,上传到所述文件上传地址,包括:
获取所述目标资源文件的上线版本号;
将携带有所述上线版本号的目标资源文件,上传到所述文件上传地址。
5.根据权利要求4所述的方法,其特征在于,在所述将携带有所述上线版本号的目标资源文件,上传到所述文件上传地址之前,所述方法还包括:
利用历史版本号,对所述上线版本号进行指定校验,得到校验结果;其中,所述指定校验用于校验所述上线版本号是否唯一;所述历史版本号为针对所述目标项目中的任一资源文件的历史上线版本号;
若所述校验结果表征所述上线版本号唯一,执行所述将携带有所述上线版本号的目标资源文件,上传到所述文件上传地址的步骤。
6.一种前端资源管理装置,其特征在于,应用于资源管理平台,所述装置包括:
接收模块,用于接收针对目标项目的管理请求;其中,所述管理请求中携带有所述目标项目中的资源文件的存储地址以及上传地址;
配置模块,用于响应于所述管理请求,利用所述存储地址,配置所述目标项目对应的文件存储地址,以及利用所述上传地址,配置所述目标项目对应的文件上传地址;
确定模块,用于当检测到待执行的所述目标项目的资源上线任务时,确定所述资源上线任务所指示的目标资源文件的文件标识;
获取模块,用于利用所述目标资源文件的文件标识,从所述文件存储地址处获取所述目标资源文件;
上传模块,用于将所述目标资源文件,上传到所述文件上传地址。
7.根据权利要求6所述的装置,其特征在于,所述目标项目中的资源文件的存储地址为预先创建的目标代码库的地址;其中,所述目标代码库用于存储所述目标项目中的资源文件。
8.根据权利要求6或7所述的装置,其特征在于,所述上传地址为内容分发网络CDN服务器的网络地址;
所述上传模块,具体用于:
将所述目标资源文件,上传到所述CDN服务器的网络地址。
9.根据权利要求6或7所述的装置,其特征在于,所述上传模块,包括:
获取子模块,用于获取所述目标资源文件的上线版本号;
上传子模块,用于将携带有所述上线版本号的目标资源文件,上传到所述文件上传地址。
10.根据权利要求9所述的装置,其特征在于,所述上传模块还包括:
校验子模块,用于在所述上传子模块执行将携带有所述上线版本号的目标资源文件,上传到所述文件上传地址之前,利用历史版本号,对所述上线版本号进行指定校验,得到校验结果;其中,所述指定校验用于校验所述上线版本号是否唯一;所述历史版本号为针对所述目标项目中的任一资源文件的历史上线版本号;
判断子模块,用于若所述校验结果表征所述上线版本号唯一,触发所述上传子模块。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210735265.0A CN115185907A (zh) | 2022-06-27 | 2022-06-27 | 一种前端资源管理方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210735265.0A CN115185907A (zh) | 2022-06-27 | 2022-06-27 | 一种前端资源管理方法、装置、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115185907A true CN115185907A (zh) | 2022-10-14 |
Family
ID=83515832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210735265.0A Pending CN115185907A (zh) | 2022-06-27 | 2022-06-27 | 一种前端资源管理方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115185907A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115390912A (zh) * | 2022-10-26 | 2022-11-25 | 深圳高灯计算机科技有限公司 | 资源发现方法、装置、计算机设备和存储介质 |
-
2022
- 2022-06-27 CN CN202210735265.0A patent/CN115185907A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115390912A (zh) * | 2022-10-26 | 2022-11-25 | 深圳高灯计算机科技有限公司 | 资源发现方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108415832B (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
US10419546B2 (en) | Migration assessment for cloud computing platforms | |
Halili | Apache JMeter | |
US8140578B2 (en) | Multilevel hierarchical associations between entities in a knowledge system | |
CN108959059B (zh) | 一种测试方法以及测试平台 | |
US20230161694A1 (en) | Orchestration for automated performance testing | |
EP1577755A2 (en) | Model driven software | |
CN105893259B (zh) | 代码检测系统、方法及装置 | |
US8521865B2 (en) | Method and apparatus for populating a software catalog with automated use signature generation | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理系统 | |
CN111026647B (zh) | 代码覆盖率的获取方法、装置、计算机设备和存储介质 | |
CN110188049A (zh) | 容器管理方法、装置以及电子设备 | |
CN115543781A (zh) | 汽车软件模型自动化验证的方法及交互系统 | |
CN115658452A (zh) | 埋点校验方法、埋点校验装置、可读存储介质、电子设备 | |
CN115185907A (zh) | 一种前端资源管理方法、装置、设备以及存储介质 | |
US11301246B2 (en) | Automatically generating continuous integration pipelines | |
CN110618943B (zh) | 安防服务测试方法、装置、电子设备及可读存储介质 | |
CN106407109A (zh) | 一种实现推广信息控制的自动化测试方法及装置 | |
CN116340187B (zh) | 规则引擎迁移测试方法、装置、电子设备及存储介质 | |
CN116028138B (zh) | 应用发布方法及装置 | |
KR102668338B1 (ko) | 인터페이스 관리 방법, 인터페이스 거버넌스 시스템, 및 인터페이스를 관리하는, 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체 | |
KR102668341B1 (ko) | 인터페이스 관리 방법, 인터페이스 거버넌스 시스템, 및 인터페이스를 관리하는, 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체 | |
KR102668339B1 (ko) | 인터페이스 관리 방법, 인터페이스 거버넌스 시스템, 및 인터페이스를 관리하는, 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체 | |
KR102669661B1 (ko) | 인터페이스 관리 방법, 인터페이스 거버넌스 시스템, 및 인터페이스를 관리하는, 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체 | |
Guzmán Mayorga et al. | Browz: automatic visual regression testing using containers for Web apps running on Chrome and Firefox |
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 |