逐浪云主机

立即开通

在VSCode中使用Remote Workspace进行远程文件管理

作者:本站编辑 发布时间:2019-02-21 来源:佚名 点击数:

引言

闲来无事在自己的云服务器上挂了几个静态html页作为一些简易工具使用,但由于平时会使用多台设备,更新页面代码时总是十分繁琐,需要反复进行登陆sftp,下载,修改,上传三步的操作。

为了简化操作,尝试寻找基于vscode及sftp的远程编辑解决方案。在对比其他需要手动点击上传下载的sftp插件后,最终选择了基于vscode新文件系统api的Remote Workspace。

Remote Workspace基于新的文件系统api提供了多种常用协议(FTP,Dropbox,SFTP等)的实现,所以在使用这些协议进行远端文件管理时,可以使用这个插件带来和vscode本地文件管理相同的体验。

配置步骤

插件安装

ext install vscode-remote-workspace

直接在扩展商店搜索 remote workspace 字样

安装即可

新建工作区

创建(修改)一个工作区文件(.code-workspace),并使用vscode的打开工作区功能打开。
示例工作区文件内容如下:

{ 
   "folders": [{
                "uri": "sftp://username:password@host:port/var/www?keepAlive=3600",        
                "name": "remote_www"
    }]
}


若打开示例文件所示的工作区,则工作区将自动将远端的/var/www文件夹映射到工作区中
同时为了防止离开一段时间后丢失连接的问题,设置keepAlive参数为3600(即1小时)

配置SFTP给予账号root权限(Optional)

由于我的需求是编辑/var/www文件夹下的文件,则进行文件操作需要具有root权限,因此选择修改SFTP配置,使其在所登陆账号可以使用免密sudo时使用管理员权限运行。
编辑需要修改配置的主机的ssh配置文件(ubutu下为/etc/ssh/sshd_config),修改Subsystem子句为以下内容:

Subsystem sftp sudo -n true && sudo -n /usr/lib/openssh/sftp-server || /usr/lib/openssh/sftp-server

之后终端执行

sudo service ssh restart

重启ssh服务

文件管理

使用打开工作区(Open Workspace)功能键打开步骤二编辑完毕的配置文件即可以看到远端被映射到工作区中。

11007257-d9c726c4d1cad5ef.png

工作区情况


修改内容后保存也会即刻同步回远端。同时支持删除及拖曳上传文件。过程体验与vscode的本地文件管理没有任何差别。

结语

这个基于vscode filesystem api的扩展给需要远端同步的开发提供了绝佳的体验,同时多协议支持也使其具有很强的泛用性。

虽然扩展本身没有提供连接断开后自动重新连接的功能,导致断开连接时需要重新打开Workspace,体验不佳。但可以设置keepAlive规避连接的断开,而且已经有开发者在其github上提交了issue,重新连接功能的加入应该指日可待,还是值得一用的。

最后附上插件带文档的git地址供需要的同学查阅[Remote Workspace]



作者:Hzldex
链接:https://www.jianshu.com/p/3a18568ffa92
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


本文责任编辑: 加入会员收藏夹 点此参与评论>>
复制本网址-发给QQ/微信上的朋友