當 Server 環境使用白名單搭配 Reverce-Proxy 時,或是 dev、test 環境不供外部使用時,或許會將部分 code 存在只能靠內網連線的主機上,並透過 OpenSSH 供內部遠端操作。
而 PHP 快速部屬的便捷在於替換單一檔案不須重啟 Server (前提是並非把檔案載進 Memory 或轉化守護進程),此時可以依靠 FTP 上傳單一檔案即好。但每次改個 code 還要想辦法上傳程式碼實在是太浪費時間了,如標題所述,如何快速同步 code 到 Server 上呢。
vscode-sftp 是一個在 VScode 中非常方便的擴充套件,上傳/下載/同步、單一/多伺服器、ftp/sftp,僅需設置一份或多份的設定檔便能(偷懶不切視窗)上傳檔案到 Server。然而正是環境 (production) 還是走正常 CI/CD 比較好。
安裝
首先在 VScode 中的市集,或是快捷鍵 ctrl+shift+P (或 F1) 打開指令窗口後輸入 extension:install。並搜尋 SFTP,認名作者 liximomo 點一下玩一年,上傳不花一分錢(支持者可以拉到下面點選 donate)。
設定上傳環境/參數
接著同樣打開指令窗口並輸入 SFTP: Config
注意由於是 JSON 格式,不能註解
主要配置好host, port, username, privateKeyPath, remotePath, ignore这参数即可:
- name : 檔案暱稱
- host : server IP/URL
- port : 若 server 建置好 ssh 環境,可將 port 端口改為 22
- username : 在 server 中的使用者名稱
- remotePath : 欲上傳的目錄位置
- privateKeyPath : 私鑰
- password : 若有設私鑰則可有(null)可無
- uploadOnSave : 自動上傳,個人是沒有開啟(經常性按 ctrl + S)
- ignore :
{
"name": "my_work_space",
"host": "192.168.X.X",
"port": 22,
"protocol": "sftp",
"username": "centos",
"remotePath": "\\home\\centos\\***\\",
"privateKeyPath": "C:\\***.pem",
"uploadOnSave": false,
"syncMode": "update",
"ignore": [
"**/.vscode/**",
"**/.git/**",
"**/.svn/**",
"**/.DS_Store"
]
}
同步所有檔案
儲存後按下同樣打開指令窗口並輸入「SFTP: Sync Local -> Remote」,再選取剛剛設定中的 name(ex.my_work_space) 便可以重部整份資料夾/工作區到遠端伺服器上囉。
同步單一檔案
僅需在左側目錄欄中對檔案右鍵並選取 Upload 便可以同步單一檔案了
如何更快速(懶)
首先可以把 uploadOnSave 打開,便在儲存時會同步所有檔案。而單一檔案的話則可以更改快捷鍵,設定好 Upload Active File,則下次儲存完按下快速鍵後便已經同步完成囉。