- All Implemented Interfaces:
- ConfigurableComponent, Processor
@PrimaryNodeOnly
@TriggerSerially
@InputRequirement(value=INPUT_FORBIDDEN)
@Tags(value={"list","ftp","remote","ingest","source","input","files"})
@CapabilityDescription(value="Performs a listing of the files residing on an FTP server. For each file that is found on the remote server, a new FlowFile will be created with the filename attribute set to the name of the file on the remote server. This can then be used in conjunction with FetchFTP in order to fetch those files.")
@SeeAlso(value={FetchFTP.class,GetFTP.class,PutFTP.class})
@WritesAttribute(attribute="ftp.remote.host",description="The hostname of the FTP Server") @WritesAttribute(attribute="ftp.remote.port",description="The port that was connected to on the FTP Server") @WritesAttribute(attribute="ftp.listing.user",description="The username of the user that performed the FTP Listing") @WritesAttribute(attribute="file.owner",description="The numeric owner id of the source file") @WritesAttribute(attribute="file.group",description="The numeric group id of the source file") @WritesAttribute(attribute="file.permissions",description="The read/write/execute permissions of the source file") @WritesAttribute(attribute="file.size",description="The number of bytes in the source file") @WritesAttribute(attribute="file.lastModifiedTime",description="The timestamp of when the file in the filesystem waslast modified as \'yyyy-MM-dd\'T\'HH:mm:ssZ\'") @WritesAttribute(attribute="filename",description="The name of the file on the FTP Server") @WritesAttribute(attribute="path",description="The fully qualified name of the directory on the FTP Server from which the file was pulled")
@Stateful(scopes=CLUSTER,
description="After performing a listing of files, the timestamp of the newest file is stored. This allows the Processor to list only files that have been added or modified after this date the next time that the Processor is run. State is stored across the cluster so that this Processor can be run on Primary Node only and if a new Primary Node is selected, the new node will not duplicate the data that was listed by the previous Primary Node.")
public class ListFTP
extends ListFileTransfer