Trigger
type: "io.kestra.plugin.fs.smb.Trigger"
Trigger a flow as soon as new files are detected in a given SMB (Samba for eg.) server's directory.
Examples
Wait for one or more files in a given SMB server's directory and process each of these files sequentially. Then move them to another share which is used as an archive.
id: smb_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.smb.Trigger
host: localhost
port: "445"
username: foo
password: bar
from: "/my_share/in/"
interval: PT10S
action: MOVE
moveDirectory: "/archive_share/"
Wait for one or more files in a given SMB server's directory and process each of these files sequentially. Then move them to another share which is used as an archive.
id: smb_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') }}"
- id: delete
type: io.kestra.plugin.fs.smb.Delete
host: localhost
port: "445"
username: foo
password: bar
uri: "/my_share/in/{{ taskrun.value | jq('.path') }}"
triggers:
- id: watch
type: io.kestra.plugin.fs.smb.Trigger
host: localhost
port: "445"
username: foo
password: bar
from: "/my_share/in/"
interval: PT10S
action: NONE
Wait for one or more files in a given SMB server's directory (composed of share name followed by dir path) 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: smb_wait_for_csv_in_my_share_my_dir
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.smb.Trigger
host: localhost
port: "445"
username: foo
password: bar
from: "my_share/mydir/"
regExp: ".*.csv"
action: MOVE
moveDirectory: "my_share/archivedir"
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
**
password
- Type: string
- Dynamic: ✔️
- Required: ❌
Password on the remote server
port
- Type: string
- Dynamic: ✔️
- Required: ❌
- Default:
445
Port of the remote server
recursive
- Type:
- boolean
- string
- Dynamic: ✔️
- Required: ❌
regExp
- Type: string
- Dynamic: ✔️
- Required: ❌
A regexp to filter on full path
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: ❓
symbolicLink
- Type: boolean
- Dynamic: ❓
- Required: ❓
- Default:
false
updatedDate
- Type: string
- Dynamic: ❓
- Required: ❓
- Format:
date-time
userId
- Type: integer
- Dynamic: ❓
- Required: ❓
Was this page helpful?