Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>FTPS Upload/DownloadNew to Visual Studio Code? Get it now.
FTPS Upload/Download

FTPS Upload/Download

Marcelo Mogami

|
1 install
| (0) | Free
Upload/download files via FTPS (FTP over TLS) with multi-server support — for servers that use TLS over FTP instead of SFTP.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

FTPS Upload/Download

Upload and download files from VSCode directly to FTPS servers (FTP over TLS), with multi-server support and runtime server selection.

Built to fill a gap: extensions like vscode-sftp use ssh2-sftp-client, which does not support TLS over FTP — the protocol used by many enterprise and government servers.


Features

  • Upload / Download — single file, from the editor or the Explorer context menu
  • Multi-server — define as many servers as you need (dev, homologa, prod…)
  • Server Quick Pick — choose the target server at runtime; last choice is remembered
  • Automatic path mapping — preserves your local folder structure on the remote server
  • Implicit and explicit TLS — both modes supported via basic-ftp
  • Self-signed certificates — per-server rejectUnauthorized flag
  • Auto mkdir — creates remote subdirectories automatically if they don't exist
  • Diff — compare local file with remote version before uploading

Getting Started

1. Open a workspace in VSCode.

2. Run FTPS: Open Config from the Command Palette (Ctrl+Shift+P). This creates .vscode/ftps.json with a template.

3. Fill in your server details:

{
  "localRoot": "${workspaceFolder}",
  "servers": {
    "dev": {
      "host": "dev.example.com",
      "port": 21,
      "user": "username",
      "password": "secret",
      "remotePath": "/public_html",
      "secure": "explicit",
      "rejectUnauthorized": true
    },
    "homologa": {
      "host": "homologa.example.com",
      "port": 990,
      "user": "username",
      "remotePath": "/public_html",
      "secure": "implicit",
      "rejectUnauthorized": false
    }
  },
  "defaultServer": "dev"
}

Tip: add .vscode/ftps.json to your .gitignore if it contains passwords.

4. Open a file and press Ctrl+Alt+U to upload. Done.


Configuration

Server fields

Field Type Default Description
host string — Server address
port number 21 (explicit) / 990 (implicit) FTP port
user string — Username
password string — Password (optional — prompted if omitted)
remotePath string "/" Root path on the server
secure "explicit" | "implicit" | false "explicit" TLS mode
rejectUnauthorized boolean true Set to false for self-signed certificates
connectTimeout number 30000 Connection handshake timeout (ms)
idleTimeout number 60000 Inactivity timeout before closing the connection (ms)

Global fields

Field Type Default Description
localRoot string ${workspaceFolder} Local root folder mapped to each server's remotePath
defaultServer string first server Pre-selected server in Quick Pick
ignore string[] [] Glob patterns to ignore (used in folder upload — v0.2)

Commands

Command Keybinding Description
FTPS: Upload File Ctrl+Alt+U Upload the active or selected file
FTPS: Download File Ctrl+Alt+D Download the remote counterpart of the active or selected file
FTPS: Diff File Ctrl+Alt+I Compare local file with the remote version (no upload)
FTPS: Open Config — Create or open .vscode/ftps.json
FTPS: Set Active Server — Change the active server without uploading

Commands are also available in the Explorer and editor context menus.


Path Mapping

The remote path is derived from the file's position relative to localRoot:

localRoot:   /home/user/project/wwwroot
remotePath:  /public_html
file:        /home/user/project/wwwroot/src/app/index.php

→ uploads to: /public_html/src/app/index.php

Remote subdirectories are created automatically if they don't exist.


Requirements

  • VSCode ^1.85.0
  • Network access to your FTPS server
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft