【開發環境搭建】7. Vscode使用SFTP遠程文件同步

1、插件下載

打開vscode,接着找開資源管理(ctrl+shift+x),輸入sftp,
在這裏插入圖片描述選擇這一插件進行安裝,這樣就完成使用Vscode對本地與遠程服務器同步文件的插件。
下載完成後,使用Vscode打開一個文件夾,作爲項目文件夾。
該插件在github上的地址爲:https://github.com/liximomo/vscode-sftp,更加詳細的說明參請參見該github.

2、打開配置文件

輸入Ctrl+Shift+P,打開命令面板,輸入sftp,會有很多選項,選擇SFTP:Config,通過對該文件的編輯來設置相關配置。
在這裏插入圖片描述
此時,會在項目文件夾中自動新建一個.vscode的文件夾,新建sftp.json並打開,初始的sftp.json內容,如圖所示。當重新起一行,輸入雙引號後,系統會自動進行內容提示。
在這裏插入圖片描述
當重新起一行,輸入雙引號後,系統會自動進行內容提示,如下圖所示,所以不用把這些內容都給記住,只要有個印像就行。
在這裏插入圖片描述

3、多種配置文式

我們有多種代碼的同步方式和應用場景,

3.1 本地代碼同步單臺遠程服務器

如sftp.json初始內容所示,使可以實現與單臺遠程服務器的同步,具體有:

{
    "name": "My Server",    
    "host": "localhost",
    "protocol": "sftp",
    "port": 22,
    "username": "username",
    "remotePath": "/",
    "uploadOnSave": true
}

name:隨便寫,爲自己要連接的服務器起個名字;
host:主要寫要連接主機的ip地址;
protocol:傳輸協議,使用sftp;
port:連接的端口號,使用默認的22就行;
username:用戶名,進行遠程連接需要的用戶名;
remotePath:遠程服務器的路徑,如果沒有會自動新建,與本地對應關係爲如:/local/test 與/remote/not_test,那麼test下的內容將完全上傳到not_test裏,如果not _test原來沒有,會自動新建。本地路徑默認爲打開的該項目的路徑。
uploadOnSave:默認是true,我們可以改成false,否則每次修改後保存的同時就會上傳到遠程服務器。
編輯好後,ctrl+s保存sftp.json,然後在資源管理器中,鼠標右鍵單擊,會有如下圖所示,會有幾個常用功能:
在這裏插入圖片描述
更多的功能還是要在命令板中輸入sftp,右鍵的功能全部都有:
在這裏插入圖片描述
通常的操作是第一次要從服務器上下載代碼。
第一次點擊右鍵並上傳到服務器,會彈出框讓輸入密碼,然後按enter即可,在這裏插入圖片描述
sftp.json中還有個參數是password,可以把密碼輸入,這樣就不會彈窗輸密碼(sftp.json每次修改再上傳文件都要再次輸入密碼)
另外還有兩個參數ignoreignoreFile:

"ignoreFile": ".gitignore",
"ignore": [
            ".vscode",
            ".git",
            ".gitignore",
            ".DS_Store",
            "__pycache__",
            ".remote-sync.json",
            "*.zip",
            "*.pptx",
            "*.msg"
        ] 

個人感覺,有ignore就可以了,把所有不想要同步的文件或文件夾全部放到ignore中。
context是一個可以相對當前vscode workspace的路徑來具體指定使用workspace那個文件(夾),與remotePath是一對,決定如保上傳的路徑。

3.2 本地代碼同步多臺服務器

我們有一個應用場景,那就是一份代碼需要在不同的遠程機器上進行測試、運行,在本地可視化開發,然後同步到遠程服務器並運行,或者上傳到遠程服務器,直接用vscode在遠程服務器上開發。這裏講一下,如何將本機單個項目同步到多臺服務器上。有點類似單臺的,具體看一下配置。

"profiles": {
        "profileName1": {},
        "profileName2":{}
    }
"defaultProfile": "profileName1"

上段代碼中,有兩個核心的參數,profiles中指定兩參服務器,每一臺的配置和上文單臺的是相同的,defaultProfile是指定默認本地服務器要同步的遠程服務器,所以一個時刻本地只與一臺遠程服務器同步。
總的配置爲:

{
    "name":"myproject",
    "port":22,
    "protocol": "sftp",
    "ignore": [
        ".vscode",
        ".git",
        ".DS_Store"
    ],
    "profiles": {
        "server1": {
        "host": "ip1",
        "username": "user1",
        "password": "user1passwd",
        "remotePath": "/path1"
        },
        "server2":{
        "host": "ip2",
        "username": "user2",
        "password": "user2passwd",
        "remotePath": "/path2"
        }     
    },
    "defaultProfile": "server1"
}

要說明的是,profiles中每個server中設置與profiles外頭的是可以一樣的,此時,會將外頭的覆蓋。
本文就寫到這裏,將來有新的應用場景再加。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章