一、啟動SFtp
話說小編最近愛上了vs code開發工具,一是方便敏捷,二是與逐浪CMS結合開發非常高效。於是想配備一款FTP工具。用上了大家推薦的sftp插件,就是下面這款:
作為一款FTP插件確實是很優秀,因為他提供了其它FTP插件所不具備的文件目錄瀏覽功能,可視化操作非常方便。
安裝它就是非常方便了,只要在擴展中,搜索:sftp,就能完成安裝。
二、上手vs code SFTP插件
2.1 初始配置
安裝好了sftp插件後,按f1或ctrl+shift+p,呼出命令,輸入sftp,就能配置ftp信息。
配置文件初始信息如下所示:
<code>{ "name": "My Server", "host": "localhost", "protocol": "sftp", "port": 22, "username": "username", "remotePath": "/", "uploadOnSave": true}/<code>
SFTP原理是這樣的:首先本地要有一個項目文件夾,同時遠程也有一個項目文件夾,然後通過配置文件來同步二者。SFTP可以查看遠程項目所有文件,但不能直接操作,必須操作本地項目文件,再同步到遠程項目。
現在我們本地和遠程均有一個文件夾“sftpFolder”,用VsCode打開本地文件夾“sftpFolder”,然後執行 ctrl+shift+p ,搜索 SFTP:Config ,回車後,會生成一個“.vscode/sftp.json”,這個就是配置文件。同時,如下圖左側會多了一個“遠程目錄
2.2解決亂碼問題
sftp插件,本身是支持ftp協議的,美中不足是對中文目錄支持欠佳,默認會顯示亂碼,而作為中文開發這是很難接受的。
最後解決亂碼的問題,就是在服務器端部署SFTP服務端來解決。作為專注微軟大數據的開發廠商,需要在windows server上部署sftp的方案,推薦可以採用FreeSSHD的解決方案。
FreeSSHD SFTP Serverhttp://www.freesshd.com/
freeFTPd 或者 freeSSHd 都可以設置 sftp 用戶,但不能像 xlight 那樣細分權限,都是讀寫權限!freeSSHd 的 sftp,所有用戶只有一個 sftp 的主目錄。freeFTPd 的 sftp,可以給不同的用戶設定不同的目錄。
freeSSHd 可以設置系統賬號、公鑰、密碼的登錄方式,不像 xlight 只能在密碼、公鑰裡二選一。freeFTPd 可以設置系統賬號、密碼、匿名的登錄方式。
其中freeSSHd支持中文目錄不亂碼,是比較推薦的使用方法,缺點是隻能支持一個目錄
配置好了windows下的sftp服務器,則就可以自由的使用啦(詳細可見本文後面)
三、SFTP配置
3.1常用配置
<code>{ "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 }}/<code>
配置文件不能寫註釋,所以這裡說明一下其中幾個屬性:
- uploadOnSave:本地更新文件保存會自動同步到遠程文件(不會同步重命名文件和刪除文件)
- downloadOnOpen:從遠程服務器下載打開的文件
- ignore:忽略的文件(匹配的文件不會同步)
- watcher:監聽器(可以重命名文件和刪除文件)
- autoUpload:文件變更會自動同步(修改和重命名)
- autoDelete:文件刪除會自動同步
更多配置請看這裡https://github.com/liximomo/vscode-sftp/wiki
3.2示例配置
一個例子:
<code>{ "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 }}/<code>
多個sftp站點同時使用,注意context項不能相同:
<code>[ { "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" }]/<code>
- 其實你可以將sftp配置文件即.vscode/sftp.json直接拷到任意項目的根目錄,從而快速實現配置文件引用。 *
四、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
閱讀更多 佐阿衡 的文章