[發(fā)明專利]一種web前端項目部署管理的方法與系統(tǒng)有效
| 申請?zhí)枺?/td> | 202011633136.8 | 申請日: | 2020-12-31 |
| 公開(公告)號: | CN112783514B | 公開(公告)日: | 2022-06-14 |
| 發(fā)明(設(shè)計)人: | 林超群;陳偉平;吳俊宏;李仁杰;張翔;陳延行 | 申請(專利權(quán))人: | 羅普特科技集團股份有限公司;羅普特(廈門)系統(tǒng)集成有限公司 |
| 主分類號: | G06F8/60 | 分類號: | G06F8/60;G06F8/61;G06F8/71;G06F9/54 |
| 代理公司: | 廈門福貝知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 35235 | 代理人: | 陳遠(yuǎn)洋 |
| 地址: | 361000 福建省廈門市*** | 國省代碼: | 福建;35 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 web 前端 項目 部署 管理 方法 系統(tǒng) | ||
1.一種web前端項目部署管理的方法,其特征在于,所述方法包括:
在web前端項目啟動前利用Node.js的fs模塊將項目信息通過本地JSON文件的形式存儲,當(dāng)web前端項目啟動時讀取所述本地JSON文件中的所述項目信息到內(nèi)存;其中,所述項目信息包括:項目服務(wù)器的賬號、密碼、項目路徑和Nginx配置文件路徑;
通過expressJS的路由功能攔截請求,利用formidable接收表單信息,根據(jù)所述請求和所述表單信息在所述內(nèi)存中對所述項目信息進行包括增、刪、改、查在內(nèi)的操作;
根據(jù)所述項目信息中的目標(biāo)服務(wù)器的相關(guān)信息,利用node-ssh遠(yuǎn)程登錄到所述目標(biāo)服務(wù)器,獲取對所述目標(biāo)服務(wù)器的操作權(quán)限;
在進行web前端項目的新版本發(fā)布時通過expressJS的路由功能攔截請求包dist.zip,利用node-ssh對所述目標(biāo)服務(wù)器中舊版本的項目文件進行備份和刪除;再基于分片續(xù)傳算法將所述請求包dist.zip分片上傳到所述目標(biāo)服務(wù)器中用于儲存所述項目信息的項目路徑上,并解壓所述請求包dist.zip;
其中,所述分片續(xù)傳算法具體包括以下步驟:
根據(jù)所述請求包dist.zip的文件大小和預(yù)設(shè)的分片大小確定分片總數(shù),并給每個分片標(biāo)記上對應(yīng)的分片序號;
根據(jù)所述請求包dist.zip的文件大小、所述分片序號和所述預(yù)設(shè)的分片大小確定每個分片的chunk開始區(qū)間和chunk結(jié)束區(qū)間;
當(dāng)所述請求包dist.zip中的請求的數(shù)量小于或等于CPU內(nèi)核數(shù)時,對所述請求包dist.zip中的請求進行并行上傳;
當(dāng)所述請求包dist.zip中的請求的數(shù)量大于所述CPU內(nèi)核數(shù)時,基于Node.js的async函數(shù)和await函數(shù),同時利用所述每個分片的chunk開始區(qū)間和chunk結(jié)束區(qū)間,對所述請求包dist.zip中的請求進行分組,其中每組的請求數(shù)量為所述CPU內(nèi)核數(shù);
根據(jù)所述分組,對每組內(nèi)的請求進行并行上傳,對不同組之間的請求進行串行上傳,并將上傳進度存儲在瀏覽器緩存中;
通過正則運算對Nginx配置文件中需要進行管理的節(jié)點插入錨點進行注釋,當(dāng)對所述需要進行管理的節(jié)點進行管理時,通過查找錨點進行定位,搜索到所述需要進行管理的節(jié)點所在的位置,再對所述需要進行管理的節(jié)點進行包括增、刪、改、查在內(nèi)的操作;
其中,所述通過正則運算對Nginx配置文件中需要進行管理的節(jié)點插入錨點進行注釋的具體步驟包括:
構(gòu)建用于插入錨點的匹配正則表達(dá)式:/location[^}]+}/gm;
在每個所述需要進行管理的節(jié)點的開始位置和結(jié)束位置分別插入開始位置錨點和結(jié)束位置錨點,并對所有錨點添加錨點關(guān)鍵字。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法在對web前端項目的歷史版本進行還原時執(zhí)行以下步驟:
讀取所述web前端項目的版本列表,在所述版本列表中選擇需要還原的歷史版本,并將當(dāng)前版本的項目文件進行備份歸檔,再將所述歷史版本的備份文件夾重命名為所述當(dāng)前版本的dist文件夾名,并記錄所述歷史版本的信息。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)對所述需要進行管理的節(jié)點進行管理結(jié)束后,通過node-ssh對所述目標(biāo)服務(wù)器進行Nginx校驗和重啟。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:利用node-ssh遠(yuǎn)程登錄到所述目標(biāo)服務(wù)器后,通過所述node-ssh從所述項目信息中的nginx配置文件路徑中獲取配置文件的文件流,并將所述文件流存儲在所述目標(biāo)服務(wù)器的本地臨時文件中,再將所述文件流傳輸給用戶后刪除所述本地臨時文件中的所述文件流。
5.一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,其特征在于,該計算機程序被計算機處理器執(zhí)行時實施權(quán)利要求1至4中任一項所述的方法。
6.一種web前端項目部署管理的系統(tǒng),其特征在于,包括:
數(shù)據(jù)管理模塊:配置用于在web前端項目啟動前利用Node.js的fs模塊將項目信息通過本地JSON文件的形式存儲,當(dāng)web前端項目啟動時讀取所述本地JSON文件中的所述項目信息到內(nèi)存;其中,所述項目信息包括:項目服務(wù)器的賬號、密碼、項目路徑和Nginx配置文件路徑;
項目管理模塊:配置用于通過expressJS的路由功能攔截請求,利用formidable接收表單信息,根據(jù)所述請求和所述表單信息在所述內(nèi)存中對所述項目信息進行包括增、刪、改、查在內(nèi)的操作;
ssh登錄模塊:配置用于根據(jù)所述項目信息中的目標(biāo)服務(wù)器的相關(guān)信息,利用node-ssh遠(yuǎn)程登錄到所述目標(biāo)服務(wù)器,獲取對所述目標(biāo)服務(wù)器的操作權(quán)限;
版本管理模塊:配置用于在進行web前端項目的新版本發(fā)布時通過expressJS的路由功能攔截請求包dist.zip,利用node-ssh對所述目標(biāo)服務(wù)器中舊版本的項目文件進行備份和刪除;再基于分片續(xù)傳算法將所述請求包dist.zip分片上傳到所述目標(biāo)服務(wù)器中用于儲存所述項目信息的項目路徑上,并解壓所述請求包dist.zip;具體包括:根據(jù)所述請求包dist.zip的文件大小和預(yù)設(shè)的分片大小確定分片總數(shù),并給每個分片標(biāo)記上對應(yīng)的分片序號;根據(jù)所述請求包dist.zip的文件大小、所述分片序號和所述預(yù)設(shè)的分片大小確定每個分片的chunk開始區(qū)間和chunk結(jié)束區(qū)間;當(dāng)所述請求包dist.zip中的請求的數(shù)量小于或等于CPU內(nèi)核數(shù)時,對所述請求包dist.zip中的請求進行并行上傳;當(dāng)所述請求包dist.zip中的請求的數(shù)量大于所述CPU內(nèi)核數(shù)時,基于Node.js的async函數(shù)和await函數(shù),同時利用所述每個分片的chunk開始區(qū)間和chunk結(jié)束區(qū)間,對所述請求包dist.zip中的請求進行分組,其中每組的請求數(shù)量為所述CPU內(nèi)核數(shù);根據(jù)所述分組,對每組內(nèi)的請求進行并行上傳,對不同組之間的請求進行串行上傳,并將上傳進度存儲在瀏覽器緩存中;
Nginx管理模塊:配置用于通過正則運算對Nginx配置文件中需要進行管理的節(jié)點插入錨點進行注釋,當(dāng)對所述需要進行管理的節(jié)點進行管理時,通過查找錨點進行定位,搜索到所述需要進行管理的節(jié)點所在的位置,再對所述需要進行管理的節(jié)點進行包括增、刪、改、查在內(nèi)的操作,具體步驟包括:構(gòu)建用于插入錨點的匹配正則表達(dá)式:/location[^}]+}/gm;在每個所述需要進行管理的節(jié)點的開始位置和結(jié)束位置分別插入開始位置錨點和結(jié)束位置錨點,并對所有錨點添加錨點關(guān)鍵字。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于羅普特科技集團股份有限公司;羅普特(廈門)系統(tǒng)集成有限公司,未經(jīng)羅普特科技集團股份有限公司;羅普特(廈門)系統(tǒng)集成有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011633136.8/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 提供共享Web模塊的系統(tǒng)和方法
- 管理環(huán)球網(wǎng)網(wǎng)頁中的環(huán)球網(wǎng)媒體的系統(tǒng)及其實現(xiàn)方法
- 一種WEB業(yè)務(wù)實現(xiàn)系統(tǒng)、裝置及方法
- 高速緩存廣播信息的方法和裝置
- 基于QoS指標(biāo)和Web服務(wù)輸出參數(shù)的Web服務(wù)組合方法和裝置
- Web托管審查方法、裝置及Web托管系統(tǒng)
- 用于信息處理和Web瀏覽歷史導(dǎo)航的方法和設(shè)備及電子裝置
- 用于將web站點轉(zhuǎn)換為目標(biāo)web app站點的方法和裝置
- 用于防護WEB漏洞的方法和設(shè)備
- 一種Web攻擊報告生成方法、裝置、設(shè)備及計算機介質(zhì)
- 一種業(yè)務(wù)處理執(zhí)行語言流程部署方法
- 云計算平臺應(yīng)用快速部署的管理方法
- 虛擬化網(wǎng)絡(luò)功能部署方法及系統(tǒng)
- 版本部署的方法、裝置、設(shè)備和計算機存儲介質(zhì)
- 測試環(huán)境部署方法、部署裝置及存儲介質(zhì)
- 程序部署任務(wù)執(zhí)行方法、裝置、計算機設(shè)備和存儲介質(zhì)
- 一種基于Ansible的輕量級容器化分布式系統(tǒng)與部署方法
- 模型部署方法、模型部署裝置及終端設(shè)備
- 系統(tǒng)部署狀態(tài)的可視化方法、裝置、設(shè)備及可讀存儲介質(zhì)
- 一種任務(wù)部署方法、系統(tǒng)、電子設(shè)備及存儲介質(zhì)





