Как сделать несколько ftp-подключений в VS Code? Например, вы используете два хостинга в своей работе. Как сделать подключение к обоим? Оказалось не так-то и просто. Поехали.
Я пользуюсь плагином SFTP от liximomo.
В настройках этого плагина приводится пример нескольких подключений:
[ { "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" } ]
Но не всё так просто на первый взгляд.
В описании плагина есть такая пометочка «The context must not be same.»
И не сразу догоняешь, что именно этот параметр context
является ключевым. В противном случае (если его не будет), в списке подключенных серверов будет только один — тот, который последний в конфиге (каждый последующий перезаписывает предыдущего).
Я пользуюсь двумя разными хостингами, и мне понадобились два разных подключения, поэтому лично я в параметр context
просто написал название первого хостинга и второго.
Но и так не срабатывало, пока я не добавил параметры протокола и порта. Как только их добавил — всё заработало как часики.
То есть у меня так:
[ { "name": "beget", "context": "beget", "host": "ftp.beget.tech", "protocol": "ftp", "port": 21, "username": "ваш_логин", "password": "ваш_пароль", "remotePath": "/", "uploadOnSave": true }, { "name": "justhost", "context": "justhost", "host": "ftp.justhost.ru", "protocol": "ftp", "port": 21, "username": "ваш_логин", "password": "ваш_пароль", "remotePath": "/", "uploadOnSave": true } ]
На втором хостинге именно в корневом каталоге вываливается всякая хрень, поэтому в параметре remotePath
лучше сразу определить путь до нужной папки, где уже находятся все сайты, на этом хостинге это папка domains
.
Я прописал туда нужный путь /home/ваш_логин/domains
, но перестало работать.
Попробовал поменять протокол на sftp
и порт на 22
и заработало.
Ну, и добавил параметр, чтобы при сохранении изменений, сразу деплоилось на хостинг "uploadOnSave": true
.
Конечный итоговый конфиг выглядит так:
[ { "name": "beget", "context": "beget", "host": "ftp.beget.tech", "protocol": "ftp", "port": 21, "username": "ваш_логин", "password": "ваш_пароль", "remotePath": "/", "uploadOnSave": true }, { "name": "justhost", "context": "justhost", "host": "ftp.justhost.ru", "protocol": "sftp", "port": 22, "username": "ваш_логин", "password": "ваш_пароль", "remotePath": "/home/ваш_логин/domains/", "uploadOnSave": true } ]
Пробуйте, удачи!