This package for Sublime Text 3/4 gives you possibility to automatically upload or delete files from FTP server when you save or delete local files and also execute custom triggers.
Tools -> Command Palette...
Package Control: Install Package
Simple FTP Deploy
Packages
directory, which you can find using the Sublime Text menu item Preferences -> Browse Packages...
File -> Open Folder...
or Project -> Add Folder to Project...
.simple-ftp-deploy.json
config file in the root of an opened directory (its settings see to configuration section)Minimal simple-ftp-deploy.json
file:
json
{
"host": "localhost",
"username": "user",
"password": "pass"
}
Note: Password is optional. If omitted, you will be asked for it once needed.
The format is JSON, so every property consists of a key-value pair:
json
{
"host": "localhost",
"port": 21,
"username": "user",
"password": "pass",
"rootDirectory": "/path/",
"ignoredFilenames": ["example.py", "anotherFilename.json"],
"ignoredExtensions": [".ignore", ".txt"],
"ignoredFolders": ["ignore", "IGNORE"],
"reuseSessions": true,
"connectionTimeout": 600,
"passive": true,
"useTLS": true,
"disabledEvents": ["deleteFile"],
"noPromptEvents": ["createFolder"],
"triggers": [
{
"on": "save",
"extensions": [".css", ".js"],
"execute": ".simple-ftp-deploy/minifier.py"
}
]
}
"host"
string
The hostname or IP address of your FTP server.
"port"
number, optional (default: 21
)
The port of the FTP server.
"username"
string
The username.
"password"
string, optional
The password. If not given, you will be asked for it once needed.
"rootDirectory"
string, optional (default: "/"
)
The FTP path to deploy.
Example: in the root of FTP you have three folders site1
, site2
, site3
and if you need to upload in site2
folder, you must set this property to /site2
, because if you skip this property, files will be upload to the root of FTP.
"ignoredFilenames"
array of strings, optional (default: []
)
List of filenames, that are ignored and not uploaded. Note that "simple-ftp-deploy.json"
is ALWAYS ignored. Case-sensitive
"ignoredExtensions"
array of strings, optional (default: []
)
List of extensions to ignore. Note that it only check last extension (so file.tar.gz
has extension ".gz"
) and if you want to ignore files like .htaccess
, this file has no extension => use "ignoredFilenames"
instead. Case-sensitive
"ignoredFolders"
array of strings, optional (default: []
)
List of folder names to ignore. The file is ignored, if it is in at least one of the specified folders (so folder1/folder2/file.py
is ignored if "ignoredFolders"
contains "folder1"
and/or "folder2"
). Case-sensitive
"reuseSessions"
boolean, optional (default: true
)
Whatever FTP session will be reused for next action (keeps session open for "connectionTimeout"
; previously named "sessionCacheEnabled"
).
"connectionTimeout"
number, optional (default: 600
)
Sets timeout for FTP connections (in seconds).
"passive"
boolean, optional (default: true
)
Whether to connect to the FTP server in passive mode.
"useTLS"
boolean, optional (default: false
)
Whether to connect to the FTP server with TLS connection (May not work correctly in Sublime Text 3).
"disabledEvents"
array of strings, optional (default: []
)
List of events that will be disabled (for example if you do not want to click Cancel
every time you are asked if you want to delete file(s) from FTP server too)
Available events are: "deleteFile"
"noPromptEvents"
array of strings, optional (default: []
)
List of events that won't prompt you (for example if you do not want to click Delete
every time you are asked if you want to delete file(s) from FTP server too)
Available events are: "deleteFile"
, "createFolder"
"triggers"
array of triggers (objects), optional (default: []
)
List of custom triggers to call when specific event happens. Each trigger can contain:
"on"
string - When to call trigger (available values: "save"
or "delete"
)."extensions"
array of string, optional - For which file extensions call this trigger. See "ignoredExtension"
for more info."filenames"
array of string, options - For which filenames call this trigger. See "ignoredFilenames"
for more info."execute"
string - Path (relative from project root) to python file to executeSee example usage of triggers here
The MIT License
Cannot change directory to ''
when it was in the root directory.sublime-text sublime-text-3 sublime-plugin sublime-text-plugin ftp