Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>ftp-syncNew to Visual Studio Code? Get it now.
ftp-sync

ftp-sync

Łukasz Wroński

|
388,804 installs
| (103) | Free
Auto sync your work to remote FTP/SFTP server
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

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.

Demo of extension

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

  • Integration with git-ftp

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
    • Added Fix for autogenerated files not uploading correctly
  • 0.3.8
    • Added Updated generatedFiles. Both of its properties are required to be set from now on. uploadOnSave works on every file now
  • 0.3.7
    • Added Fix for broken uploadOnSave and subdirectories not adding properly
  • 0.3.5
    • Added Various enhancements (SCP Support, bug fixes, list command)
    • Added List commands
    • Added Fix for broken ignore and allow regex
    • Introduced separate store to store syncOption
    • Added Prompt for password if no password was given in config
    • Added Fix for config secureOptions being ignored
    • Implemented allow config
    • Added Fix for incorrect path for ignore of remote sync
    • Added Ability to download a single file using the context menu
    • Added Rudimentary ssh-agent support
  • 0.3.3
    • Added Support for generated files
  • 0.3.2
    • Added FTP over SSL support
    • Added Sync current file to Remote
    • Fixed bug #86 (by PR #84)
    • Improved readme and fixed debug mode
    • Compatibility for vscode 1.5+
    • Improve Error handling around parsing config file
  • 0.3.1
    • Added SFTP private key support
  • 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
    • Fix for Running the contributed command:'extension.ftpsyncinit' failed
    • Fix for After some tryes the Review file stopped to work
    • Added debug output option to config file
    • Error message for incorrect JSON like in this issue
    • Closing review file after commit (pointed out in this issue)
    • Fix for uploadOnSave will fail for files on new created folders
    • Added ES6 support in extension source
  • 0.2.8
    • Attempt to fix uploadOnSave will fail for files on new created folders
  • 0.2.7
    • Fix for Sync R2L does not delete folder
    • Replace of deprecated method TextEditor.hide with command call
  • 0.2.6
    • Fix for Error: EXDEV: cross-device link not permitted on mounted drive
  • 0.2.5
    • Fix for Local to remote "Full sync" error
  • 0.2.4
    • Fix for Duplicate folder in folder we upload to
  • 0.2.3
    • Fix for Cant download
  • 0.2.2
    • Fix for Upload on save don't track ignored files
    • Added support for ftp passive mode
  • 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
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft