TIKA - Détection de type de document

Normes MIME

Les normes MIME (Multipurpose Internet Mail Extensions) sont les meilleures normes disponibles pour l'identification des types de documents. La connaissance de ces normes aide le navigateur lors des interactions internes.

Chaque fois que le navigateur rencontre un fichier multimédia, il choisit un logiciel compatible disponible avec lui pour afficher son contenu. Dans le cas où il ne dispose d'aucune application appropriée pour exécuter un fichier multimédia particulier, il recommande à l'utilisateur de se procurer le logiciel de plugin approprié.

Détection de type dans Tika

Tika prend en charge tous les types de documents multimédias Internet fournis dans MIME. Chaque fois qu'un fichier passe par Tika, il détecte le fichier et son type de document. Pour détecter les types de média, Tika utilise en interne les mécanismes suivants.

Extensions de fichiers

La vérification des extensions de fichier est la méthode la plus simple et la plus utilisée pour détecter le format d'un fichier. De nombreuses applications et systèmes d'exploitation prennent en charge ces extensions. Vous trouverez ci-dessous l'extension de quelques types de fichiers connus.

Nom de fichier Prolongation
image .jpg
l'audio .mp3
fichier d'archive java .pot
fichier de classe java .classe

Conseils de type de contenu

Chaque fois que vous récupérez un fichier d'une base de données ou que vous le joignez à un autre document, vous risquez de perdre le nom ou l'extension du fichier. Dans de tels cas, les métadonnées fournies avec le fichier sont utilisées pour détecter l'extension du fichier.

Octet magique

En observant les octets bruts d'un fichier, vous pouvez trouver des modèles de caractères uniques pour chaque fichier. Certains fichiers ont des préfixes d'octets spéciaux appelésmagic bytes spécialement conçus et inclus dans un fichier dans le but d'identifier le type de fichier

Par exemple, vous pouvez trouver CA FE BA BE (format hexadécimal) dans un fichier java et% PDF (format ASCII) dans un fichier pdf. Tika utilise ces informations pour identifier le type de média d'un fichier.

Codages de caractères

Les fichiers contenant du texte brut sont codés à l'aide de différents types de codage de caractères. Le principal défi ici est d'identifier le type de codage de caractères utilisé dans les fichiers. Tika suit des techniques d'encodage de caractères commeBom markers et Byte Frequencies pour identifier le système de codage utilisé par le contenu en texte brut.

Caractères racine XML

Pour détecter les documents XML, Tika analyse les documents xml et extrait les informations telles que les éléments racine, les espaces de noms et les schémas référencés à partir desquels le véritable type de média des fichiers peut être trouvé.

Détection de type à l'aide de la classe de façade

le detect()La méthode de classe de façade est utilisée pour détecter le type de document. Cette méthode accepte un fichier en entrée. Vous trouverez ci-dessous un exemple de programme de détection de type de document avec la classe de façade Tika.

import java.io.File;

import org.apache.tika.Tika;

public class Typedetection {

   public static void main(String[] args) throws Exception {

      //assume example.mp3 is in your current directory
      File file = new File("example.mp3");//
      
      //Instantiating tika facade class 
      Tika tika = new Tika();
      
      //detecting the file type using detect method
      String filetype = tika.detect(file);
      System.out.println(filetype);
   }
}

Enregistrez le code ci-dessus sous TypeDetection.java et exécutez-le à partir de l'invite de commande à l'aide des commandes suivantes -

javac TypeDetection.java
java TypeDetection 

audio/mpeg