2016-05-26 14 views
0

Ich verwende Apache Tika-Parser den Inhalt einer Datei in einem lokalen Dateisystem mit dem folgenden CodeApache Tika von FTP-Datei-Stream-Parsing

  ContentHandler textHandler = new BodyContentHandler(); 
      Metadata metadata = new Metadata(); 
      ParseContext context = new ParseContext(); 
      InputStream input = new FileInputStream(file); 

      try { 
      _autoParser.parse(input, textHandler, metadata, context); 
      } catch (Exception e) { 

      log(String.format("File %s failed", file.getCanonicalPath())); 
      e.printStackTrace(); 
      continue; 
      } 

      list.add(textHandler.toString); 

Jetzt lesen wollte ich die Dateien von einem FTP erhalten Location, gibt es irgendeine Möglichkeit, das Parsing der Dateien in FTP während der Laufzeit durchzuführen, ohne sie an einen beliebigen Ort herunterzuladen.

+2

Verwenden Sie ein Java FTP-Client, und analysiert, um die 'InputStream' vom Client direkt auf Apache Tika? – Gagravarr

Antwort

1

Probieren Sie die Apache Commons Net-Bibliothek aus, um den InputStream der FTP-Datei abzurufen.

Probe:

String server = "www.myserver.com"; 
    int port = 21; 
    String user = "user"; 
    String pass = "pass"; 

    FTPClient ftpClient = new FTPClient(); 

    ftpClient.connect(server, port); 
    ftpClient.login(user, pass); 
    InputStream inputStream = ftpClient.retrieveFileStream("/test/test1.txt");