ファイルからメタデータを抽出する新しい Tika パーサーを作成できるようにしたいと考えています。すでに Tika を使用しており、メタデータの抽出は一貫して行われます。
Tika のこの問題/機能強化のリクエストに遭遇したと思います。
ファイルまたはメモリ バッファをパーサーに渡すことを許可する
入力時にファイルへのパスを受け入れ、見つかったメタデータを出力するコンソール c++ 実行可能ファイルがあり、各行は名前と値のペアで構成されています。
C++ コードは、データにアクセスするときにファイル パスを必要とするライブラリに依存しています。この実行可能ファイルを Java で書き直すことはできません。これをTikaに差し込むのはかなり簡単だと思いました。ただし、Tika パーサーは Java である必要があり、オーバーライドする必要がある Tika パーサー メソッドは、開いている入力ストリームを受け取ります。
void parse(InputStream ストリーム、ContentHandler ハンドラ、メタデータ メタデータ、ParseContext コンテキスト)
したがって、私の唯一の解決策は、入力ストリームを取得して一時ファイルに書き込み、書き込まれたファイルを処理してから最終的にファイルをクリーンアップすることだと思います。一時ファイルをいじって、何か問題が発生して削除されなかった場合に一時ファイルのクリーンアップについて心配する必要がある可能性があるのは嫌いです。
このようなものをきれいに処理する方法について、賢いアイデアを持っている人はいますか?