Starts an FTP server that listens on the specified port and transforms incoming files into FlowFiles. The URI of the service will be ftp://{hostname}:{port}. The default port is 2221.

Additional Details...


ingest, FTP, FTPS, listen


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, whether a property supports the NiFi Expression Language, and whether a property is considered "sensitive", meaning that its value will be encrypted. Before entering a value in a sensitive property, ensure that the file has an entry for the property nifi.sensitive.props.key.

NameDefault ValueAllowable ValuesDescription
Bind AddressThe address the FTP server should be bound to. If not set (or set to, the server binds to all available addresses (i.e. all network interfaces of the host machine).
Supports Expression Language: true (will be evaluated using variable registry only)
Listening Port2221The Port to listen on for incoming connections. On Linux, root privileges are required to use port numbers below 1024.
Supports Expression Language: true (will be evaluated using variable registry only)
UsernameThe name of the user that is allowed to log in to the FTP server. If a username is provided, a password must also be provided. If no username is specified, anonymous connections will be permitted.
Supports Expression Language: true (will be evaluated using variable registry only)
PasswordIf the Username is set, then a password must also be specified. The password provided by the client trying to log in to the FTP server will be checked against this password.
Sensitive Property: true
Supports Expression Language: true (will be evaluated using variable registry only)
SSL Context ServiceController Service API:
Implementations: StandardRestrictedSSLContextService
Specifies the SSL Context Service that can be used to create secure connections. If an SSL Context Service is selected, then a keystore file must also be specified in the SSL Context Service. Without a keystore file, the processor cannot be started successfully.Specifying a truststore file is optional. If a truststore file is specified, client authentication is required (the client needs to send a certificate to the server).Regardless of the selected TLS protocol, the highest available protocol is used for the connection. For example if NiFi is running on Java 11 and TLSv1.2 is selected in the controller service as the preferred TLS Protocol, TLSv1.3 will be used (regardless of TLSv1.2 being selected) because Java 11 supports TLSv1.3.


successRelationship for successfully received files.

Reads Attributes:

None specified.

Writes Attributes:

filenameThe name of the file received via the FTP/FTPS connection.
pathThe path pointing to the file's target directory. E.g.: file.txt is uploaded to /Folder1/SubFolder, then the value of the path attribute will be "/Folder1/SubFolder/" (note that it ends with a separator character).

State management:

This component does not store state.


This component is not restricted.

Input requirement:

This component does not allow an incoming relationship.

System Resource Considerations:

None specified.