網站發布小工具,--讓發布變簡單一點


網站發布工具

靈感來源:每次發布都需要登錄遠程服務器,備份舊文件上傳新文件,在不同文件夾之間反復切換非常繁瑣,程序員可都是懶人,那能每天時間都耗在這些繁瑣的事情上,而且還需要非常小心避免出錯。最開始是用Python做了一個小工具,直接在文件上點擊右鍵即可上傳到服務器右鍵上傳。單個文件上傳倒是非常快捷,但是對於‘上傳多個文件,上傳文件夾’類似於zip軟件右鍵壓縮類型的功能,網上查詢了一些資料,但是沒有找到適合我的技術方案。最后決定犧牲一點快捷性,放棄右鍵方案,使用winform做客戶端,使用Node.js做服務器,開發這個小工具。

服務器端介紹

部署

  • 安裝Node.js
  • 下載DepolyServer 並解壓
  • 進入DeployServer目錄,shift+鼠標左鍵,選擇“在此處打開命令窗口”輸入node index 80 啟動server。端口號可省略,默認值3000

啟動成功后界面會提示 The depolyServer is now ready to accept connections on port 80

在啟動前需要完善配置文件config.js

module.exports = {
  projects:[{
    "name":"admin",                            //項目名稱 不建議中文,用於創建文件夾,遵守文件夾命名約定。
    "directory":"d:\\wwwroot\\web\\",          //IIS網站根目錄
    "users":[{"account":"ywb","password":"123"},{"account":"帳號","password":"密碼"}],
    "fileHandlers":[
      {filePath:'\\web.config',rules:[{name:'C',p1:'test string'},{name:'B',p1:'test string',p2:'new string'},{name:'B',p1:/x/g,p2:'y'}]}
    ]
  }]
}
// fileHandlers.filePath 設置需要處理的文件,相對路徑,需要以 \ 開頭
// 示例fileHandlers規則意思是:在文件'\web.config'的尾部增加字符串'test string',然后將文件中的字符串'test string' 改為'new string'。
// 適用場景 增加js代碼,用於在測試環境增加一些提示文本,用戶在正式環境增加統計代碼,或者替換一些關鍵配置。

//rule規則說明 
var rules = [
  {
    name:'A',//用 p1文件 覆蓋上傳的文件
    p1:'\\my\\web.config'  // 相對於DeployServer運行目錄
  },
  {
    name:'B',//對上傳的文件進行字符串替換 相當於str.replace(p1, p2)  
    p1:'old text | regexp ',
    p2:'new text | regexp '
  },
  {
    name:'C',//將字符串追加到上傳文件尾部
    p1:'append string'
  }
]

上傳文件存放目錄約定

\data 目錄,存放所有上傳文件的歷史數據。
\data\{project} 目錄,存放某個'project'上傳文件的歷史數據
\data\{project}\history 目錄,存放文件歷史數據。
\data\{project}\{yyyymmdd}-{tag}.json 日志文件,每次上傳日志文件。 未解決:如果在23:59分進行文件上傳,上傳文件較多,會產生回滾BUG
日志文件內容約定

{
  data: '2016-12-14 11:09:00',                           //文件上傳時間
  tag: '{tag}',                                          //標簽  (上傳時可以自由約定標簽,使用有意義的字母,遵守文件命名規則)
  account: 'ywb',                                        //上傳人
  memo: '修改短信接口',                                   //上傳原因
  target: '\\web.config',                                //目標文件相對路徑
  old: "\\data\\{project}\\history\\20161214\\{tag}-Web-old-34c123a0.config",  //舊文件備份  如果為空,說話沒有找到舊文件
  new: "\\data\\{project}\\history\\20161214\\{tag}-Web-new-34c123a0.config"   //新上傳的文件備份  因為同一個Tag,同一個文件可能反復推送,所以增加了一個隨機標識,記錄每一次推送內容
}

回滾操作 命令行工具

請避免project名稱中間有空格,不解決該BUG,哦
node back 列出所有project
node back -l admin 列出admin下的所有上傳日志
node back -r admin tag 回滾admin下的tag日志 tag支持1,2,3,回滾序號對應的Tag。
輸入圖片說明

客戶端介紹

安裝

  • 基於.NET Framework 2.0 ,一般系統自帶,沒有則需要安裝
  • 下載DepolyClient 並解壓
  • 雙擊 DeployClient.exe

在啟動前需要完善配置文件config.json

[
  {
    "Name": "Web 正式環境",                 //你容易理解的名稱
    "Url": "http://localhost:3000/upload",  //替換localhost:3000成 server的 域名:端口號
    "Project": "admin",                     //與server配置保持一致
    "Account": "ywb",                       //帳號 與server配置保持一致
    "Password": "123",                      //密碼 與server配置保持一致
    "Directories": "D:\\publish\\admin\\;D:\\postFile\\postfile\\", //本地目錄 可配置多個 ;號分隔
    "Files": "dll;cshtml;js;json;config;css;png;html;jpg",          //允許上傳的文件后綴 ;號分隔
    "IgnorePath": "\\Assets;\\Content\\themes"                      //上傳忽略的路徑 ;號分隔
  },
  {
    "Name": "Admin 正式環境",
    "Url": "http://localhost:3000/upload",
    "Project": "admin22",
    "Account": "ywb22",
    "Password": "1234",
    "Directories": "D:\\publish\\Web",
    "Files": "dll;cshtml;js;json;config;css;png;html;jpg",
    "IgnorePath": "\\Assets;\\Content\\themes"
  }
]

其它說明

  • 可單獨為某人配置上傳帳號,方便管理,避免需要知道服務器帳號密碼才能發布
  • 上傳文件有加密驗證,不用擔心數據被竊取
  • 源碼:https://git.oschina.net/nxwsyang/deploy


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM