TIKA - Detección de tipo de documento

Estándares MIME

Los estándares de Extensiones multipropósito de correo de Internet (MIME) son los mejores estándares disponibles para identificar tipos de documentos. El conocimiento de estos estándares ayuda al navegador durante las interacciones internas.

Siempre que el navegador encuentra un archivo multimedia, elige un software compatible disponible con él para mostrar su contenido. En caso de que no tenga una aplicación adecuada para ejecutar un archivo multimedia en particular, recomienda al usuario que obtenga el software de complemento adecuado para él.

Detección de tipo en Tika

Tika admite todos los tipos de documentos multimedia de Internet proporcionados en MIME. Siempre que un archivo pasa por Tika, detecta el archivo y su tipo de documento. Para detectar tipos de medios, Tika utiliza internamente los siguientes mecanismos.

Extensiones de archivo

La comprobación de las extensiones de archivo es el método más simple y más utilizado para detectar el formato de un archivo. Muchas aplicaciones y sistemas operativos brindan soporte para estas extensiones. A continuación se muestra la extensión de algunos tipos de archivos conocidos.

Nombre del archivo Extensión
imagen .jpg
audio .mp3
archivo de archivo java .tarro
archivo de clase java .clase

Sugerencias de tipo de contenido

Siempre que recupere un archivo de una base de datos o lo adjunte a otro documento, puede perder el nombre o la extensión del archivo. En tales casos, los metadatos proporcionados con el archivo se utilizan para detectar la extensión del archivo.

Byte mágico

Al observar los bytes sin procesar de un archivo, puede encontrar algunos patrones de caracteres únicos para cada archivo. Algunos archivos tienen prefijos de bytes especiales llamadosmagic bytes que están especialmente hechos e incluidos en un archivo con el fin de identificar el tipo de archivo

Por ejemplo, puede encontrar CA FE BA BE (formato hexadecimal) en un archivo java y% PDF (formato ASCII) en un archivo pdf. Tika usa esta información para identificar el tipo de medio de un archivo.

Codificaciones de caracteres

Los archivos con texto sin formato se codifican utilizando diferentes tipos de codificación de caracteres. El principal desafío aquí es identificar el tipo de codificación de caracteres utilizada en los archivos. Tika sigue técnicas de codificación de caracteres comoBom markers y Byte Frequencies para identificar el sistema de codificación utilizado por el contenido de texto sin formato.

Caracteres raíz XML

Para detectar documentos XML, Tika analiza los documentos xml y extrae la información, como elementos raíz, espacios de nombres y esquemas referenciados, de donde se puede encontrar el tipo de medio real de los archivos.

Detección de tipos mediante la clase de fachada

los detect()El método de la clase de fachada se utiliza para detectar el tipo de documento. Este método acepta un archivo como entrada. A continuación se muestra un programa de ejemplo para la detección del tipo de documento con la clase de fachada 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);
   }
}

Guarde el código anterior como TypeDetection.java y ejecútelo desde el símbolo del sistema usando los siguientes comandos:

javac TypeDetection.java
java TypeDetection 

audio/mpeg