Reads the contents of a file from disk and streams it into the contents of an incoming FlowFile. Once this is done, the file is optionally moved elsewhere or deleted to help keep the file system organized.
local, files, filesystem, ingest, ingress, get, source, input, fetch
In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the NiFi Expression Language.
| Display Name | API Name | Default Value | Allowable Values | Description |
|---|---|---|---|---|
| File to Fetch | File to Fetch | ${absolute.path}/${filename} | The fully-qualified filename of the file to fetch from the file system Supports Expression Language: true (will be evaluated using flow file attributes and Environment variables) | |
| Completion Strategy | Completion Strategy | None |
| Specifies what to do with the original file on the file system once it has been pulled into NiFi |
| Move Destination Directory | Move Destination Directory | The directory to the move the original file to once it has been fetched from the file system. This property is ignored unless the Completion Strategy is set to "Move File". If the directory does not exist, it will be created. Supports Expression Language: true (will be evaluated using flow file attributes and Environment variables) | ||
| Move Conflict Strategy | Move Conflict Strategy | Rename |
| If Completion Strategy is set to Move File and a file already exists in the destination directory with the same name, this property specifies how that naming conflict should be resolved |
| Log level when file not found | Log level when file not found | ERROR |
| Log level to use in case the file does not exist when the processor is triggered |
| Log level when permission denied | Log level when permission denied | ERROR |
| Log level to use in case user mburgess does not have sufficient permissions to read the file |
| Name | Description |
|---|---|
| success | Any FlowFile that is successfully fetched from the file system will be transferred to this Relationship. |
| not.found | Any FlowFile that could not be fetched from the file system because the file could not be found will be transferred to this Relationship. |
| permission.denied | Any FlowFile that could not be fetched from the file system due to the user running NiFi not having sufficient permissions will be transferred to this Relationship. |
| failure | Any FlowFile that could not be fetched from the file system for any reason other than insufficient permissions or the file not existing will be transferred to this Relationship. |
| Required Permission | Explanation |
|---|---|
| read filesystem | Provides operator the ability to read from any file that NiFi has access to. |
| write filesystem | Provides operator the ability to delete any file that NiFi has access to. |
Ingest all files from a directory into NiFi
Configure the "Input Directory" property to point to the directory that you want to ingest files from.
Set the "Input Directory Location" property to "Local"
Optionally, set "Minimum File Age" to a small value such as "1 min" to avoid ingesting files that are still being written to.
Connect the 'success' Relationship to the FetchFile processor.
Set the "File to Fetch" property to ${absolute.path}/${filename}
Set the "Completion Strategy" property to None
Ingest specific files from a directory into NiFi, filtering on filename
Configure the "Input Directory" property to point to the directory that you want to ingest files from.
Set the "Input Directory Location" property to "Local"
Set the "File Filter" property to a Regular Expression that matches the filename (without path) of the files that you want to ingest. For example, to ingest all .jpg files, set the value to .*\.jpg
Optionally, set "Minimum File Age" to a small value such as "1 min" to avoid ingesting files that are still being written to.
Connect the 'success' Relationship to the FetchFile processor.
Set the "File to Fetch" property to ${absolute.path}/${filename}
Set the "Completion Strategy" property to None