FTP-Sync extension for VS Code
This extension allows you to easily synchronise your local workspace (project files) with an FTP server. It also has several advanced features such as automatic upload on save.
Usage
There are four commands available. You can access them from the command palette (Ctrl+Shift+P on Windows/Linux).
You can also sync a single file by right-clicking on it in the left menu and using the "Ftp-sync: Upload File" and "Ftp-sync: Download File" commands.
Ftp-sync: Init
Initializes a default FTP-Sync configuration file in the .vscode
directory. Options can be customised as follows:
- remotePath - This can be set to the path on the remote that you would like to upload to. The default is
./
i.e. the root.
- host - The hostname of the FTP server you want to connect to.
- username - The username of the FTP account you want to use.
- password - The password of the FTP account you want to use.
- port - The port on the FTP server you would like to connect to. The default is
"21"
.
- protocol - The FTP protocol to be used. The default is
"ftp"
but you can also specify "sftp"
.
- uploadOnSave - Whether files should automatically be uploaded on save. The default is
false
.
- passive - Specifies whether to use FTP passive mode. The default is
false
.
- debug - Specifies whether to display debug information in an ftp-sync Output window. The default is
false
.
- privateKeyPath - Specifies the path to the private key for SFTP. The default is
null
.
- passphrase - Specifies the passphrase to use with the private key for SFTP. The default is
null
.
- agent - Specifies the ssh-agent to use for SFTP. The default is
null
.
- allow - An array of escaped regular expression strings specifying paths which are allowed. If nonempty, unless a path matches any of these regular expressions it will not be included in the sync. Default value is empty, implying everything is allowed.
- ignore - An array of escaped regular expression strings specifying paths to ignore. If a path matches any of these regular expressions then it will not be included in the sync. Default values are
"\\.git"
, "\\.vscode"
and ".DS_Store"
.
- generatedFiles: - Automatically upload freshly generated files. Also uploads files that are deleted. extensionsToInclude has to be set for this feature to work.
- extensionsToInclude: [""] e.g. [".js", ".css"] - Array of strings specifying what extensions to add for auto-upload. Default is "" which means that it will automatically upload files of all extensions. An empty array here means that generatedFiles feature is disabled.
- path: "" - This specifies the path to the directory where the files are, [e.g.] "/build", default is "" which is the root workspace directory
Ftp-sync: Sync Local to Remote
Displays a synchronization wizard to configure a sync operation that changes FTP files and folders to match project files.
Ftp-sync: Sync Remote to Local
Displays a synchronization wizard to configure a sync operation that changes project files and folders to match FTP files.
Ftp-sync: Commit
Commits reviewed list of changes made with Sync Local to Remote or Sync Remote to Local command.
To be added soon:
- Config validation (add minimal configuration requirement)
- Better connection error handling
- More real life testing
- Bug fixes
- Context menu to sync folders (up/down)
Future plans
Found any bugs? Got any questions or ideas?
- Rise a ticket here!
- Contact me at vscode[at]lukaszwronski.pl
Please provide as much information as possible. We are dealing with diffrent ftp servers, file structures, file permissions, operating systems and it might be difficult to reproduce your error and fix it without detailed informations.
I'm looking forward to get any feedback from extension users! Contribution, especially on bug fixing is more than welcome!
Great thanks for suggestions and help with debugging for Martin, Allan, Maxime, suuuunto and all other folks who reported bugs or made improvement requests.
Use at your own risk - I do not guarantee that it will work correctly!
Version history
- 0.3.9
- 0.3.8
- 0.3.7
- 0.3.5
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- Added SFTP protocol support
- Improvement of sync performance in environments with many nested directories
- Fix for problems with upload on save on unsynced directories
- 0.2.9
- 0.2.8
- 0.2.7
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.2
- 0.2.1 - Fix for Save on second try
- 0.2.0 - Rewritten sync mechanism - Changes based on this conversation: - New sync wizard - Reviewing changes before save - Choose to remove orphans or not (safe sync) - Fix for uncontrolled number of ftp connections
- 0.1.4 - Fix for No handler found for the command: 'extension.ftpsyncdownload'
- 0.1.2 - Basic progress indication in sync process - Better error handling in sync command - Github links in package.json
- 0.1.1 - All information messages moved to status bar - Removed "alertOnSync" parameter from config - Addedd progress indication in download process - Fixes in download process
- 0.1.0 - First version containing all basic features