一、啟動SFtp
話說小編最近愛上了vs code開發工具,一是方便敏捷,二是與逐浪CMS結合開發非常高效。
於是想配備一款FTP工具。
用上了大家推薦的sftp插件,就是下面這款:
作為一款FTP插件確實是很優秀,因為他提供了其它FTP插件所不具備的文件目錄瀏覽功能,可視化操作非常方便。
安裝它就是非常方便了,只要在擴展中,搜索:sftp,就能完成安裝。
二、上手vs code SFTP插件
2.1 初始配置
安裝好了sftp插件后,按f1
或ctrl+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