Class GetFile

java.lang.Object
org.apache.nifi.components.AbstractConfigurableComponent
org.apache.nifi.processor.AbstractSessionFactoryProcessor
org.apache.nifi.processor.AbstractProcessor
org.apache.nifi.processors.standard.GetFile
All Implemented Interfaces:
org.apache.nifi.components.ConfigurableComponent, org.apache.nifi.processor.Processor

@TriggerWhenEmpty @InputRequirement(INPUT_FORBIDDEN) @Tags({"local","files","filesystem","ingest","ingress","get","source","input"}) @CapabilityDescription("Creates FlowFiles from files in a directory. NiFi will ignore files it doesn\'t have at least read permissions for.") @WritesAttribute(attribute="filename",description="The filename is set to the name of the file on disk") @WritesAttribute(attribute="path",description="The path is set to the relative path of the file\'s directory on disk. For example, if the <Input Directory> property is set to /tmp, files picked up from /tmp will have the path attribute set to ./. If the <Recurse Subdirectories> property is set to true and a file is picked up from /tmp/abc/1/2/3, then the path attribute will be set to abc/1/2/3") @WritesAttribute(attribute="file.creationTime",description="The date and time that the file was created. May not work on all file systems") @WritesAttribute(attribute="file.lastModifiedTime",description="The date and time that the file was last modified. May not work on all file systems") @WritesAttribute(attribute="file.lastAccessTime",description="The date and time that the file was last accessed. May not work on all file systems") @WritesAttribute(attribute="file.owner",description="The owner of the file. May not work on all file systems") @WritesAttribute(attribute="file.group",description="The group owner of the file. May not work on all file systems") @WritesAttribute(attribute="file.permissions",description="The read/write/execute permissions of the file. May not work on all file systems") @WritesAttribute(attribute="absolute.path",description="The full/absolute path from where a file was picked up. The current \'path\' attribute is still populated, but may be a relative path") @SeeAlso({PutFile.class,FetchFile.class}) @Restriction(requiredPermission=READ_FILESYSTEM,explanation="Provides operator the ability to read from any file that NiFi has access to.") @Restriction(requiredPermission=WRITE_FILESYSTEM,explanation="Provides operator the ability to delete any file that NiFi has access to.") public class GetFile extends org.apache.nifi.processor.AbstractProcessor
  • Field Details

    • DIRECTORY

      public static final org.apache.nifi.components.PropertyDescriptor DIRECTORY
    • RECURSE

      public static final org.apache.nifi.components.PropertyDescriptor RECURSE
    • KEEP_SOURCE_FILE

      public static final org.apache.nifi.components.PropertyDescriptor KEEP_SOURCE_FILE
    • FILE_FILTER

      public static final org.apache.nifi.components.PropertyDescriptor FILE_FILTER
    • PATH_FILTER

      public static final org.apache.nifi.components.PropertyDescriptor PATH_FILTER
    • MIN_AGE

      public static final org.apache.nifi.components.PropertyDescriptor MIN_AGE
    • MAX_AGE

      public static final org.apache.nifi.components.PropertyDescriptor MAX_AGE
    • MIN_SIZE

      public static final org.apache.nifi.components.PropertyDescriptor MIN_SIZE
    • MAX_SIZE

      public static final org.apache.nifi.components.PropertyDescriptor MAX_SIZE
    • IGNORE_HIDDEN_FILES

      public static final org.apache.nifi.components.PropertyDescriptor IGNORE_HIDDEN_FILES
    • POLLING_INTERVAL

      public static final org.apache.nifi.components.PropertyDescriptor POLLING_INTERVAL
    • BATCH_SIZE

      public static final org.apache.nifi.components.PropertyDescriptor BATCH_SIZE
    • PROPERTIES

      private static final List<org.apache.nifi.components.PropertyDescriptor> PROPERTIES
    • FILE_CREATION_TIME_ATTRIBUTE

      public static final String FILE_CREATION_TIME_ATTRIBUTE
      See Also:
    • FILE_LAST_MODIFY_TIME_ATTRIBUTE

      public static final String FILE_LAST_MODIFY_TIME_ATTRIBUTE
      See Also:
    • FILE_LAST_ACCESS_TIME_ATTRIBUTE

      public static final String FILE_LAST_ACCESS_TIME_ATTRIBUTE
      See Also:
    • FILE_OWNER_ATTRIBUTE

      public static final String FILE_OWNER_ATTRIBUTE
      See Also:
    • FILE_GROUP_ATTRIBUTE

      public static final String FILE_GROUP_ATTRIBUTE
      See Also:
    • FILE_PERMISSIONS_ATTRIBUTE

      public static final String FILE_PERMISSIONS_ATTRIBUTE
      See Also:
    • FILE_MODIFY_DATE_ATTR_FORMAT

      public static final String FILE_MODIFY_DATE_ATTR_FORMAT
      See Also:
    • REL_SUCCESS

      public static final org.apache.nifi.processor.Relationship REL_SUCCESS
    • RELATIONSHIPS

      private static final Set<org.apache.nifi.processor.Relationship> RELATIONSHIPS
    • fileQueue

      private final BlockingQueue<File> fileQueue
    • inProcess

      private final Set<File> inProcess
    • recentlyProcessed

      private final Set<File> recentlyProcessed
    • queueLock

      private final Lock queueLock
    • listingLock

      private final Lock listingLock
    • queueLastUpdated

      private final AtomicLong queueLastUpdated
  • Constructor Details

    • GetFile

      public GetFile()
  • Method Details

    • getSupportedPropertyDescriptors

      protected List<org.apache.nifi.components.PropertyDescriptor> getSupportedPropertyDescriptors()
      Overrides:
      getSupportedPropertyDescriptors in class org.apache.nifi.components.AbstractConfigurableComponent
    • getRelationships

      public Set<org.apache.nifi.processor.Relationship> getRelationships()
      Specified by:
      getRelationships in interface org.apache.nifi.processor.Processor
      Overrides:
      getRelationships in class org.apache.nifi.processor.AbstractSessionFactoryProcessor
    • onScheduled

      @OnScheduled public void onScheduled(org.apache.nifi.processor.ProcessContext context)
    • createFileFilter

      private FileFilter createFileFilter(org.apache.nifi.processor.ProcessContext context, Path inputDirectory)
    • performListing

      private Set<File> performListing(File directory, FileFilter filter, boolean recurseSubdirectories)
    • getAttributesFromFile

      protected Map<String,String> getAttributesFromFile(Path file)
    • onTrigger

      public void onTrigger(org.apache.nifi.processor.ProcessContext context, org.apache.nifi.processor.ProcessSession session) throws org.apache.nifi.processor.exception.ProcessException
      Specified by:
      onTrigger in class org.apache.nifi.processor.AbstractProcessor
      Throws:
      org.apache.nifi.processor.exception.ProcessException