1

私はしばらくTikaを使用してきましたが、ファイルを表すデフォルトまたはカスタムのTikaConfigでTikaファサードのみを使用することになっていることを知っていorg/apache/tika/mime/tika-mimetypes.xmlます。

私のアプリケーションでは、以下と異なるドキュメント タイプは許可されませんhtml,doc,docx,odt,txt,rtf,srt,sub,pdf,odf,odp,xls,ppt,msg

デフォルトの MediaTypes には他にもたくさんの種類が含まれています。

tika-mimetypes.xml を変更して、不要な MimeTypes を削除する必要がありますか? 次に、私が理解しているように、これらの MimeTypes に対してのみ複合パーサーと検出器を作成します。

しかし、サポートされていないタイプが提供された場合はどうなりますか? TikaException または SAXException をキャッチして、ファイルを拒否する必要がありますか?

また、 tika-mimetypes.xml を手動で編集するにはどうすればよいですか? 1290 の MimeType があり、ほとんどがばかげたサード パーティの MimeType です。なぜ彼らはそこにいるのですか?

4

1 に答える 1

2

特定のタイプのみを受け入れたい場合でも、完全な MIME タイプ セットが必要です。そうでなければ、誰かがあなたに与えたばかりのファイルが実際に MP3 であり、承認された形式の 1 つではないことをどのように検出できますか? したがって、検出用に完全な mitype を設定したままにします

検出ステップを完了し、それが有効な MIME タイプであると判断したら、ファイルを に渡すだけで処理をAutoDetectParser完了できます。結局のところ、ディテクターから返された MIME タイプをチェックして、それが気に入らない場合はすぐに救済することになります。

ただし、追加のチェックが必要な場合は、2 つの方法があります。org.apache.tika.parser.Parser1 つは、使用したい形式のパーサーのみをリストするカスタムファイルを用意することです。これは、 で使用できるパーサーを決定するために使用される構成ファイルですAutoDetectParser。たとえば、MP3Parserそのリストから を削除すると、自動検出パーサーは MP3 の処理を​​停止します。

もう 1 つの方法は、サポートしたいパーサーの明示的なリストを用意することです。次に、自動検出パーサーを使用するのではなく、ファイルを処理できるパーサーが見つかるまですべてを単純に繰り返し、そのパーサーで parse メソッドを直接呼び出します。これにより、ほとんどの制御が得られますが、作業が少し増える可能性があります。

于 2011-07-24T16:26:49.180 に答える