liximomo.sftp 插件项目根目录/
├── .vscode/
│ └── sftp.json # 配置文件
├── 本地文件...
└── 远程同步的文件...
{
"name": "服务器名称",
"host": "服务器IP或域名",
"protocol": "sftp",
"port": 22,
"username": "用户名",
"password": "密码",
// 或使用私钥认证
"privateKeyPath": "~/.ssh/id_rsa",
"remotePath": "/var/www/html",
"uploadOnSave": true,
"ignore": [
"**/.vscode/**",
"**/.git/**",
"**/node_modules/**"
]
}
创建不同的配置文件对应不同服务器:
.vscode/
├── sftp-server1.json
├── sftp-server2.json
├── sftp-server3.json
└── sftp.json # 主配置文件(使用连接符)
主配置文件 (sftp.json):
{
"protocol": "sftp",
"profiles": {
"server1": "sftp-server1.json",
"server2": "sftp-server2.json",
"server3": "sftp-server3.json"
}
}
方法2:单文件多配置
{
"contexts": [
{
"name": "测试服务器",
"host": "test.example.com",
"username": "user1",
"remotePath": "/var/www/test",
"uploadOnSave": false
},
{
"name": "生产服务器",
"host": "prod.example.com",
"username": "user2",
"remotePath": "/var/www/prod",
"uploadOnSave": false
}
]
}
F1 → 输入 SFTP: ConfigCtrl+Shift+P → SFTP: List常用命令:
- SFTP: Upload # 上传当前文件
- SFTP: Download # 下载当前文件
- SFTP: Upload Project # 上传整个项目
- SFTP: Download Project # 下载整个项目
- SFTP: Sync to Remote # 同步到远程
- SFTP: Sync to Local # 同步到本地
- SFTP: Diff # 对比差异
{
"sftp.autoUploadDelay": 1000,
"sftp.autoDownload": false,
"sftp.autoUpload": false
}
{
"name": "自动同步服务器",
"host": "192.168.1.100",
"remotePath": "/home/project",
"uploadOnSave": true,
"syncMode": "update",
"watcher": {
"files": "**/*",
"autoUpload": true,
"autoDelete": true
}
}
"ignore": [
"**/.vscode/**",
"**/.git/**",
"**/node_modules/**",
"**/tmp/**",
"**/*.log",
"*.{jpg,png,gif}"
]
创建 .vscode/sftp-tasks.json:
{
"tasks": [
{
"name": "同步到测试环境",
"command": "sftp upload",
"args": ["test"]
},
{
"name": "同步到生产环境",
"command": "sftp upload",
"args": ["prod"]
}
]
}
1. 开发环境(本地)
- 创建配置文件:.vscode/sftp-test.json
- 创建配置文件:.vscode/sftp-prod.json
2. 测试阶段
- 选择测试服务器配置
- 按 Ctrl+Shift+P → SFTP: Upload Project
- 或设置 uploadOnSave: true 自动同步
3. 生产发布
- 切换到生产服务器配置
- 执行 SFTP: Diff 检查差异
- 执行 SFTP: Sync to Remote
权限问题:
"permissions": {
"owner": "www-data",
"group": "www-data",
"mode": "0755"
}
连接超时:
"connectTimeout": 10000,
"keepaliveInterval": 10000
大文件传输:
"concurrency": 1,
"limitOpenFilesOnRemote": 10
如果 SFTP 插件不能满足需求,可以考虑:
这样配置后,你就可以轻松管理多个服务器的文件同步工作了。