在Vs code中使用sftp插件以及連接windows遠程sftp協議部署指導(解決vscode的sftp插件中文目錄亂碼問題)


一、啟動SFtp

話說小編最近愛上了vs code開發工具,一是方便敏捷,二是與逐浪CMS結合開發非常高效。
於是想配備一款FTP工具。
用上了大家推薦的sftp插件,就是下面這款:

作為一款FTP插件確實是很優秀,因為他提供了其它FTP插件所不具備的文件目錄瀏覽功能,可視化操作非常方便。

安裝它就是非常方便了,只要在擴展中,搜索:sftp,就能完成安裝。

二、上手vs code SFTP插件

2.1 初始配置

安裝好了sftp插件后,按f1ctrl+shift+p,呼出命令,輸入sftp,就能配置ftp信息。

配置文件初始信息如下所示:

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

SFTP原理是這樣的:首先本地要有一個項目文件夾,同時遠程也有一個項目文件夾,然后通過配置文件來同步二者。
SFTP可以查看遠程項目所有文件,但不能直接操作,必須操作本地項目文件,再同步到遠程項目。

現在我們本地和遠程均有一個文件夾“sftpFolder”,用VsCode打開本地文件夾“sftpFolder”,然后執行 ctrl+shift+p ,搜索 SFTP:Config ,回車后,會生成一個“.vscode/sftp.json”,這個就是配置文件。
同時,如下圖左側會多了一個“遠程目錄

2.2解決亂碼問題

sftp插件,本身是支持ftp協議的,美中不足是對中文目錄支持欠佳,默認會顯示亂碼,而作為中文開發這是很難接受的。

最后解決亂碼的問題,就是在服務器端部署SFTP服務端來解決。
作為專注微軟大數據的開發廠商,需要在windows server上部署sftp的方案,推薦可以采用FreeSSHD的解決方案。

FreeSSHD SFTP Server
http://www.freesshd.com/

freeFTPd 或者 freeSSHd 都可以設置 sftp 用戶,但不能像 xlight 那樣細分權限,都是讀寫權限!
freeSSHd 的 sftp,所有用戶只有一個 sftp 的主目錄。
freeFTPd 的 sftp,可以給不同的用戶設定不同的目錄。

freeSSHd 可以設置系統賬號、公鑰、密碼的登錄方式,不像 xlight 只能在密碼、公鑰里二選一。
freeFTPd 可以設置系統賬號、密碼、匿名的登錄方式。

其中freeSSHd支持中文目錄不亂碼,是比較推薦的使用方法,缺點是只能支持一個目錄

配置好了windows下的sftp服務器,則就可以自由的使用啦(詳細可見本文后面)

三、SFTP配置

3.1常用配置

{
    "name": "本地文件夾名稱(可自定義)",
    "host": "ip或域名",
    "protocol": "協議:[sftp/ftp]默認ftp",
    "port": 22,
    "username": "username",
    "password":"password",
    "remotePath": "遠程文件夾地址,默認/",
    "context": "本地文件夾地址,默認為vscode工作區根目錄",
    "uploadOnSave": true,
    "downloadOnOpen":false,
    "ignore": [
        "**/.vscode/**",
        "**/.git/**",
        "**/.DS_Store"
    ],
    "watcher": {
        "files": "*",
        "autoUpload": false,
        "autoDelete": false
    }
}

配置文件不能寫注釋,所以這里說明一下其中幾個屬性:

  • uploadOnSave:本地更新文件保存會自動同步到遠程文件(不會同步重命名文件和刪除文件)
  • downloadOnOpen:從遠程服務器下載打開的文件
  • ignore:忽略的文件(匹配的文件不會同步)
  • watcher:監聽器(可以重命名文件和刪除文件)
  • autoUpload:文件變更會自動同步(修改和重命名)
  • autoDelete:文件刪除會自動同步

更多配置請看這里https://github.com/liximomo/vscode-sftp/wiki

3.2示例配置

一個例子:

{
    "name": "test", 
    "host": "abc.com",
    "protocol": "ftp",
    "port": 21,
    "username": "username",
    "password":"password",
    "remotePath": "/",
    "uploadOnSave": true,
    "ignore": [
        "**/.vscode/**",
        "**/.git/**",
        "**/.DS_Store"
    ],
    "watcher": {
        "files": "*",
        "autoUpload": false,
        "autoDelete": false
    }
}

多個sftp站點同時使用,注意context項不能相同:

[
  {
    "name": "server1",
    "context": "project/build",
    "host": "host",
    "username": "username",
    "password": "password",
    "remotePath": "/remote/project/build"
  },
  {
    "name": "server2",
    "context": "project/src",
    "host": "host",
    "username": "username",
    "password": "password",
    "remotePath": "/remote/project/src"
  }
]

四、SFTP使用

其中:Upload Folder 和 Download Folder 在 uploadOnSave 和 watcher 都關閉的情況下使用。

五、部署與使用文獻

站長管理服務器必讀:Ftp、Ftps與Sftp三兄弟的不同與區別以及部署全指引
https://www.z01.com/help/Cloud/3553.shtml

windows 上搭建 sftp 服務器 -freesshd全過程( 在linux上部署逐浪CMS的必讀教程)
https://www.z01.com/help/Cloud/3552.shtml

用於Windows系統的免費SFTP服務器-Free SFTP Servers及各款軟件功能對比
https://www.z01.com/help/web/3555.shtml


免責聲明!

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



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