Trigger Trigger

yaml
type: "io.kestra.plugin.fs.ftp.Trigger"

Trigger a flow as soon as new files are detected in a given FTP server's directory.

Examples

Wait for one or more files in a given FTP server's directory and process each of these files sequentially.

yaml
id: ftp_trigger_flow
namespace: company.team

tasks:
  - id: for_each_file
    type: io.kestra.plugin.core.flow.EachSequential
    value: "{{ trigger.files }}"
    tasks:
      - id: return
        type: io.kestra.plugin.core.debug.Return
        format: "{{ taskrun.value | jq('.path') }}"

triggers:
  - id: watch
    type: io.kestra.plugin.fs.ftp.Trigger
    host: localhost
    port: 21
    username: foo
    password: bar
    from: "/in/"
    interval: PT10S
    action: MOVE
    moveDirectory: "/archive/"

Wait for one or more files in a given FTP server's directory and process each of these files sequentially. Delete files manually after processing to prevent infinite triggering.

yaml
id: ftp_trigger_flow
namespace: company.team

tasks:
  - id: for_each_file
    type: io.kestra.plugin.core.flow.EachSequential
    value: "{{ trigger.files }}"
    tasks:
      - id: return
        type: io.kestra.plugin.core.debug.Return
        format: "{{ taskrun.value | jq('.name') }}"
      - id: delete
        type: io.kestra.plugin.fs.ftp.Delete
        host: localhost
        port: 21
        username: foo
        password: bar
        uri: "/in/{{ taskrun.value | jq('.name') }}"

triggers:
  - id: watch
    type: io.kestra.plugin.fs.ftp.Trigger
    host: localhost
    port: 21
    username: foo
    password: bar
    from: "/in/"
    interval: PT10S
    action: NONE

Wait for one or more files in a given FTP 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.

yaml
id: ftp_wait_for_csv_in_mydir
namespace: company.team

tasks:
  - id: each
    type: io.kestra.plugin.core.flow.EachSequential
    value: "{{ trigger.files }}"
    tasks:
      - id: return
        type: io.kestra.plugin.core.debug.Return
        format: "{{ taskrun.value | jq('.path') }}"

triggers:
  - id: watch
    type: io.kestra.plugin.fs.ftp.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
    • NONE

The action to perform on the retrieved files. If using 'NONE' make sure to handle the files inside your flow to avoid infinite triggering.

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.

interval

  • Type: string
  • Dynamic:
  • Required:
  • Default: 60.000000000
  • Format: duration

The interval between test of triggers

moveDirectory

  • Type: string
  • Dynamic: ✔️
  • Required:

**The destination directory in case off MOVE **

passiveMode

  • Type:
    • boolean
    • string
  • Dynamic: ✔️
  • Required:

password

  • Type: string
  • Dynamic: ✔️
  • Required:

Password on the remote server

port

  • Type: string
  • Dynamic: ✔️
  • Required:
  • Default: 21

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
    • string
  • Dynamic: ✔️
  • Required:

regExp

  • Type: string
  • Dynamic: ✔️
  • Required:

A regexp to filter on full path

remoteIpVerification

  • Type:
    • boolean
    • string
  • Dynamic: ✔️
  • Required:

rootDir

  • Type:
    • boolean
    • string
  • Dynamic: ✔️
  • Required:

stopAfter

  • Type: array
  • SubType: string
  • Dynamic:
  • Required:

List of execution states after which a trigger should be stopped (a.k.a. disabled).

username

  • Type: string
  • Dynamic: ✔️
  • Required:

Username on the remote server

Outputs

files

  • Type: array
  • SubType: File
  • Required:

Metadata of downloaded files.

outputFiles

  • Type: object
  • SubType: string
  • Required:

The downloaded files as a map of from/to URIs.

Definitions

io.kestra.plugin.fs.vfs.models.File

Properties

accessDate
  • Type: string
  • Dynamic:
  • Required:
  • Format: date-time
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:
  • Format: uri
permissions
  • Type: integer
  • Dynamic:
  • Required:
size
  • Type: integer
  • Dynamic:
  • Required:
  • Type: boolean
  • Dynamic:
  • Required:
  • Default: false
updatedDate
  • Type: string
  • Dynamic:
  • Required:
  • Format: date-time
userId
  • Type: integer
  • Dynamic:
  • Required:

Was this page helpful?