在本地先處理好要上傳的站點文件之后,可能會因為一些網頁切圖導致ftp上傳不穩定,中斷,或者文件占用的問題。
那么換了一種實現思路,要借助jenkins的工具jenkins-cli.jar。
解決思路:
1、本地處理好要上傳的站點文件,通過壓縮軟件進行打包,其中壓包的命名有規律,比如日期+BuildID的形式。
2、用FTP插件進行上傳到外網的目錄。
3、外網的機器上也同樣安裝Jenkins的環境,並新建好一個Job,這個Job增加參數化構建,參數為BuildID,然后增加批處理進行BuildID的壓縮包查找並解壓。
4、本地的Jenkins構建好Job之后,再通過jenkins-cli.jar調用外網的解壓Job進行解壓。
這樣一來,解決了零碎文件的上傳速度限制。
主要的解決步驟:
0、新建工程名:

1、外網機器上的Job上添加參數化構建(2.x默認已經安裝此插件,不需要安裝其它)


2、外網機器上獲取Job上傳入的參數,可以利用參數進行批處理的查找解壓

以下為批處理,其中參數為構建工程的輸入參數,其中備份操作上我直接排除了一些沒必要的文件夾內容
echo [INFO] 備份壓縮操作
call C:\"Program Files"\WinRAR\Rar.exe a -x*\Upload* -x*\ueditor* -x*\UploadFolder* -x*\DownloadFile* -x*\ErrorLog* -x*\LogFiles* %FilePath%.bak.rar %UnzipPath%
echo [INFO] 解壓操作
call c:\"Program Files"\winrar\rar.exe x -ep2 -o+- %FilePath% %UnzipPath%
3、本地的Jenkins處理好打包站點文件並通過FTP上傳后,通過jenkins-cli.jar的遠程調用上面的外網工程(jenkins-cli.jar默認放在jenkins的安裝目錄Jenkins\war\WEB-INF\jenkins-cli.jar)
echo [INFO] 通過CLI調用公網Jenkins進行解包
java -jar "C:\Program Files (x86)\Jenkins\war\WEB-INF\jenkins-cli.jar" -s http://192.168.199.2:8080/ build Unzip -p FilePath=E:\wwwroot\inetpub\bak\%BUILD_ID%.push.rar -p UnzipPath=E:\wwwroot\inetpub\wwwroot\Green --username administrator --password administrator
上面的意思是:構建UnZip的項目,傳入了BUILD_ID這個參數值(這個是約定好的文件名方式,采用jenkins的buildid去找到文件),后面是登錄的管理員賬號密碼。
