クラス TikaMagicByteChecker

java.lang.Object
org.iplass.mtp.impl.web.fileupload.TikaMagicByteChecker
すべての実装されたインタフェース:
MagicByteChecker

public class TikaMagicByteChecker extends Object implements MagicByteChecker
Apache Tika を利用したマジックバイトチェック処理

引数で取得した contentType (MimeType) を利用して、ファイルのマジックバイトをチェックする。 オプションでファイル拡張子もチェックする。

本チェック機能を利用する場合は、MimeType検出とMagicByteチェック処理を Tika を利用することを推奨する。 MimeType検出機能で tika を利用する為には WebFrontendService の uploadFileTypeDetector を TikaFileTypeDetector に変更する。

  • コンストラクタの詳細

    • TikaMagicByteChecker

      public TikaMagicByteChecker()
  • メソッドの詳細

    • setFileUploadTikaAdapter

      public void setFileUploadTikaAdapter(FileUploadTikaAdapter tikaAdapter)
      FileUploadTikaAdapter を設定する

      設定必須のプロパティ。

      パラメータ:
      tikaAdapter - FileUploadTikaAdapter
    • setCheckExtension

      public void setCheckExtension(boolean isCheckExtension)
      拡張子チェックの実施設定を設定する

      true の場合、拡張子チェックを実施する。

      パラメータ:
      isCheckExtension -
    • setReadMagicLength

      public void setReadMagicLength(int readMagicLength)
      マジックバイトの読み込みサイズを設定する

      MimeType 定義の全体を通した最小のマジックバイトサイズを設定する。チェックの為にはある程度大きなサイズが必要となる。

      デフォルト値は 65536 ( = 64 * 1024 ) 。 Tika のマジックバイト最小値を利用。( MimeTypes.getMinLength() )

      パラメータ:
      readMagicLength - マジックバイトの読み込みサイズ
    • setThrowExceptionIfMimeTypeIsNull

      public void setThrowExceptionIfMimeTypeIsNull(boolean isThrowExceptionIfMimeTypeIsNull)
      MimeTypeが取得できない場合に例外をスローするか

      設定値が true の場合、MimeTypeが取得できない場合に例外をスローする。 デフォルト値は false です。

      パラメータ:
      isThrowExceptionIfMimeTypeIsNull - MimeTypeが取得できない場合に例外をスローするか
    • setThrowExceptionIfFileCannotRead

      public void setThrowExceptionIfFileCannotRead(boolean isThrowExceptionIfFileCannotRead)
      チェック対象ファイルを読み取ることができない場合に例外をスローするか

      設定値が true の場合、チェック対象ファイルを読み取ることができない場合に例外をスローする。 デフォルト値は false です。

      パラメータ:
      isThrowExceptionIfFileCannotRead - チェック対象ファイルを読み取ることができない場合に例外をスローするか
    • setSubstitutionMediaType

      public void setSubstitutionMediaType(Map<String,String> substitutionMediaType)
      チェック対象のメディアタイプ(コンテンツタイプ)の置換設定

      name(key) = 対象のメディアタイプ(コンテンツタイプ)、 value = 置換後のメディアタイプ(コンテンツタイプ)。

      チェック対象のコンテンツタイプは、MimeType として定義されているとは限らない。 個別の Detector で判別された場合、MimeType に定義されていない。 例えば

      @linkが無効です
      {@link org.apache.tika.parser.iwork.iwana.IWork13PackageParser\\$IWork13DocumentType
      } で定義される "application/vnd.apple.keynote.13" は MimeType 定義として存在しない。 このような MimeType は汎化した定義を取得することができないので、置換するコンテンツタイプを定義できるようにする。

      パラメータ:
      substitutionMediaType - チェック対象のコンテンツタイプの置換設定
    • checkMagicByte

      public void checkMagicByte(File tempFile, String contentType, String fileName)
      定義:
      checkMagicByte インタフェース内 MagicByteChecker