Class FileSystemEmitter

  • All Implemented Interfaces:
    org.apache.tika.pipes.emitter.Emitter, org.apache.tika.pipes.emitter.StreamEmitter

    public class FileSystemEmitter
    extends org.apache.tika.pipes.emitter.AbstractEmitter
    implements org.apache.tika.pipes.emitter.StreamEmitter
    Emitter to write to a file system.

    This calculates the path to write to based on the basePath and the value of the TikaCoreProperties.SOURCE_PATH value.

      <properties>
          <emitters>
              <emitter class="org.apache.tika.pipes.emitter.fs.FileSystemEmitter>
                  <params>
                      <!-- required -->
                      <param name="name" type="string">fs</param>
                      <!-- required -->
                      <param name="basePath" type="string">/path/to/output</param>
                      <!-- optional; default is 'json' -->
                      <param name="fileExtension" type="string">json</param>
                      <!-- optional; if the file already exists,
                           options ('skip', 'replace', 'exception')
                      default is 'exception' -->
                      <param name="onExists" type="string">skip</param>
                      <!-- optional; whether or not to pretty print the output
                          default is false -->
                         <param name="prettyPrint" type="boolean">true</param>
                  </params>
              </emitter>
          </emitters>
      </properties>
    • Constructor Detail

      • FileSystemEmitter

        public FileSystemEmitter()
    • Method Detail

      • emit

        public void emit​(String emitKey,
                         List<org.apache.tika.metadata.Metadata> metadataList,
                         org.apache.tika.parser.ParseContext parseContext)
                  throws IOException,
                         org.apache.tika.pipes.emitter.TikaEmitterException
        Specified by:
        emit in interface org.apache.tika.pipes.emitter.Emitter
        Throws:
        IOException
        org.apache.tika.pipes.emitter.TikaEmitterException
      • setBasePath

        @Field
        public void setBasePath​(String basePath)
      • setFileExtension

        @Field
        public void setFileExtension​(String fileExtension)
        If you want to customize the output file's file extension. Do not include the "."
        Parameters:
        fileExtension -
      • setOnExists

        @Field
        public void setOnExists​(String onExists)
        What to do if the target file already exists. NOTE: if more than one thread is trying write to the same file and FileSystemEmitter.ON_EXISTS.REPLACE is chosen, you still might get a FileAlreadyExistsException.
        Parameters:
        onExists -
      • setPrettyPrint

        @Field
        public void setPrettyPrint​(boolean prettyPrint)
      • emit

        public void emit​(String path,
                         InputStream inputStream,
                         org.apache.tika.metadata.Metadata userMetadata,
                         org.apache.tika.parser.ParseContext parseContext)
                  throws IOException,
                         org.apache.tika.pipes.emitter.TikaEmitterException
        Specified by:
        emit in interface org.apache.tika.pipes.emitter.StreamEmitter
        Throws:
        IOException
        org.apache.tika.pipes.emitter.TikaEmitterException