Trigger
type: "io.kestra.plugin.fs.ftps.Trigger"
Trigger a flow as soon as new files are detected in a given FTPS server's directory.
Examples
Wait for one or more files in a given FTPS server's directory and process each of these files sequentially.
id: ftps_trigger_flow
namespace: dev
tasks:
- id: for_each_file
type: io.kestra.core.tasks.flows.EachSequential
value: "{{ trigger.files | jq('.path') }}"
tasks:
- id: return
type: io.kestra.core.tasks.debugs.Return
format: "{{ taskrun.value }}"
triggers:
- id: watch
type: io.kestra.plugin.fs.ftps.Trigger
host: localhost
port: 990
username: foo
password: bar
from: "/in/"
interval: PT10S
action: MOVE
moveDirectory: "/archive/"
Wait for one or more files in a given FTPS server's directory and process each of these files sequentially. In this example, we restrict the trigger to only wait for CSV files in the
mydir
directory.
id: ftp_wait_for_csv_in_mydir
namespace: dev
tasks:
- id: each
type: io.kestra.core.tasks.flows.EachSequential
value: "{{ trigger.files | jq('.path') }}"
tasks:
- id: return
type: io.kestra.core.tasks.debugs.Return
format: "{{ taskrun.value }}"
triggers:
- id: watch
type: io.kestra.plugin.fs.ftps.Trigger
host: localhost
port: "21"
username: foo
password: bar
from: "mydir/"
regExp: ".*.csv"
action: MOVE
moveDirectory: "archive/"
interval: PTS
Properties
action
- Type: string
- Dynamic: ✔️
- Required: ✔️
- Possible Values:
MOVE
DELETE
The action to do on find files
from
- Type: string
- Dynamic: ✔️
- Required: ✔️
The directory to list
host
- Type: string
- Dynamic: ✔️
- Required: ✔️
Hostname of the remote server
conditions
- Type: array
- SubType: Condition
- Dynamic: ❌
- Required: ❌
List of Conditions in order to limit the flow trigger.
dataChannelProtectionLevel
- Type: string
- Dynamic: ❌
- Required: ❌
- Default:
P
- Possible Values:
C
S
E
P
Sets the data channel protection level (PROT).
insecureTrustAllCertificates
- Type: boolean
- Dynamic: ❌
- Required: ❌
Whether the client should disable checking of the remote SSL certificate.
Note: This makes the SSL connection insecure, and should only be used for testing.
interval
- Type: string
- Dynamic: ❌
- Required: ❌
- Default:
60.000000000
- Format:
duration
The interval between test of triggers
mode
- Type: string
- Dynamic: ❌
- Required: ❌
- Default:
EXPLICIT
- Possible Values:
IMPLICIT
EXPLICIT
Sets FTPS mode, either "implicit" or "explicit".
moveDirectory
- Type: string
- Dynamic: ✔️
- Required: ❌
The destination directory in case off
MOVE
passiveMode
- Type: boolean
- Dynamic: ❌
- Required: ❌
- Default:
true
Whether to use a passive mode. Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to
true
. To use active mode instead, set the property tofalse
.
password
- Type: string
- Dynamic: ✔️
- Required: ❌
Password on the remote server
port
- Type: string
- Dynamic: ✔️
- Required: ❌
- Default:
990
Port of the remote server
proxyHost
- Type: string
- Dynamic: ✔️
- Required: ❌
FTP proxy host
proxyPort
- Type: string
- Dynamic: ✔️
- Required: ❌
FTP proxy port
proxyType
- Type: string
- Dynamic: ✔️
- Required: ❌
- Possible Values:
DIRECT
HTTP
SOCKS
FTP proxy type
recursive
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
false
List file recursively
regExp
- Type: string
- Dynamic: ✔️
- Required: ❌
A regexp to filter on full path
remoteIpVerification
- Type: boolean
- Dynamic: ❌
- Required: ❌
- Default:
true
Control that the server ip that emit the request is the same than send response.
rootDir
- Type: boolean
- Dynamic: ❌
- Required: ❌
- Default:
true
Is path is relative to root dir
username
- Type: string
- Dynamic: ✔️
- Required: ❌
Username on the remote server
Outputs
files
The bucket of the downloaded file
Definitions
File
accessDate
- Type: string
- Dynamic: ❓
- Required: ❌
fileType
- Type: string
- Dynamic: ❓
- Required: ❌
- Possible Values:
FOLDER
FILE
FILE_OR_FOLDER
IMAGINARY
flags
- Type: integer
- Dynamic: ❓
- Required: ❌
groupId
- Type: integer
- Dynamic: ❓
- Required: ❌
name
- Type: string
- Dynamic: ❓
- Required: ❌
path
- Type: string
- Dynamic: ❓
- Required: ❌
permissions
- Type: integer
- Dynamic: ❓
- Required: ❌
size
- Type: integer
- Dynamic: ❓
- Required: ❌
symbolicLink
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
false
updatedDate
- Type: string
- Dynamic: ❓
- Required: ❌
userId
- Type: integer
- Dynamic: ❓
- Required: ❌