The FTP connector provides file-monitoring and on-demand file operations against an FTP server, using the FluentFTP SDK.
Two separate connections are deliberately maintained rather than merged into one. The first is used exclusively by a background file monitor, watching a configured path for added, deleted, and changed files and reporting them via the built-in ADDED/DELETED/CHANGED tags. The second is used exclusively for the on-demand RunMethod operations (RENAME/MOVEFILE/GETFILE/DELETEFILE/UPLOADFILE/GETLISTING). FTP clients are generally not safe for concurrent use from multiple threads - the underlying protocol is fundamentally one command at a time per connection - so this avoids a slow on-demand operation blocking file monitoring, or vice versa.
%CONNECTED reflects the monitoring connection specifically; the on-demand connection is connected (and reconnected, if needed) lazily, the first time a RunMethod call actually needs it.
The connector detects when the monitoring connection is lost and reconnects automatically without blocking - reconnection runs on its own dedicated background thread.
| Name | Values | Description |
|---|---|---|
| Type | FTP | The connector type identifier. |
| HOST | hostname or IP | The FTP server address. |
| USER / PASS | string | FTP credentials. |
| MONITORPATH | comma-separated paths | One or more server-side paths to watch for added/deleted/changed files. If omitted, file monitoring is disabled entirely (only the on-demand RunMethod operations are available). |
| UpdateRate | milliseconds (integer) | How often the connector's heartbeat runs. Defaults to 5000. Note this does not control file-monitoring frequency - see below. |
| ReconnectDelay | milliseconds (integer) | Delay between reconnect attempts while the monitoring connection is unreachable. Defaults to 5000. |
The monitor's own poll interval (how often it checks MONITORPATH for changes) is fixed at 20 seconds and is not currently configurable via a parameter.
| Tag Type | Address | Behaviour |
|---|---|---|
| ADDED | - | Built-in tag. Updated with the list of newly-added files whenever the monitor detects a change, if MONITORPATH is configured. |
| DELETED | - | Built-in tag. Updated with the list of deleted files. |
| CHANGED | - | Built-in tag. Updated with the list of changed files. |
These three tags are created automatically by the connector - there's no need to (and no way to) configure additional tags against this connector; all file data arrives through them or through the RunMethod results below.
| Name | Arguments | Description |
|---|---|---|
| RENAME | Source, Destination | Renames a file on the server. |
| MoveFile | Source, Destination | Moves a file on the server. |
| GetFile | Path | Downloads a file's contents on demand. |
| DeleteFile | Path | Deletes a file on the server. |
| UploadFile | Path, File | Uploads a file's contents to the server at the given path. |
| GetListing | Path | Lists the contents of a directory on the server. |
Each of these retries automatically (up to 20 attempts, 50ms apart) before reporting a failure via %ERROR.
Tags on this connector don't use an Address at all - the three built-in tags report monitor events directly by name, and everything else is accessed on demand via the RunMethod operations above, addressed by an explicit Path/Source/Destination argument rather than a tag Address.