TIKA - Wykrywanie typu dokumentu
Standardy MIME
Standardy Multipurpose Internet Mail Extensions (MIME) to najlepsze dostępne standardy identyfikacji typów dokumentów. Znajomość tych standardów pomaga przeglądarce podczas wewnętrznych interakcji.
Za każdym razem, gdy przeglądarka napotka plik multimedialny, wybiera kompatybilne oprogramowanie dostępne z nią w celu wyświetlenia jego zawartości. W przypadku, gdy nie ma odpowiedniej aplikacji do uruchomienia określonego pliku multimedialnego, zaleca użytkownikowi pobranie odpowiedniego oprogramowania wtyczki.
Wykrywanie typów w Tika
Tika obsługuje wszystkie typy dokumentów mediów internetowych dostarczane w MIME. Za każdym razem, gdy plik jest przesyłany przez Tika, wykrywa plik i jego typ dokumentu. Aby wykryć typy mediów, Tika wewnętrznie wykorzystuje następujące mechanizmy.
Rozszerzenia plików
Sprawdzanie rozszerzeń plików to najprostsza i najczęściej stosowana metoda wykrywania formatu pliku. Wiele aplikacji i systemów operacyjnych obsługuje te rozszerzenia. Poniżej pokazane są rozszerzenia kilku znanych typów plików.
Nazwa pliku | Przedłużenie |
---|---|
wizerunek | .jpg |
audio | .mp3 |
plik archiwum java | .słoik |
plik klasy java | .klasa |
Wskazówki dotyczące treści
Za każdym razem, gdy pobierasz plik z bazy danych lub dołączasz go do innego dokumentu, możesz stracić nazwę lub rozszerzenie pliku. W takich przypadkach metadane dostarczone z plikiem są używane do wykrywania rozszerzenia pliku.
Magic Byte
Obserwując nieprzetworzone bajty pliku, można znaleźć pewne unikalne wzorce znaków dla każdego pliku. Niektóre pliki mają specjalne przedrostki bajtów o nazwiemagic bytes które są specjalnie utworzone i zawarte w pliku w celu identyfikacji typu pliku
Na przykład można znaleźć CA FE BA BE (format szesnastkowy) w pliku java i% PDF (format ASCII) w pliku pdf. Tika wykorzystuje te informacje do identyfikacji typu pliku multimedialnego.
Kodowanie znaków
Pliki ze zwykłym tekstem są kodowane przy użyciu różnych typów kodowania znaków. Głównym wyzwaniem jest tutaj zidentyfikowanie typu kodowania znaków używanego w plikach. Tika stosuje techniki kodowania znaków, takie jakBom markers i Byte Frequencies do identyfikacji systemu kodowania używanego przez zwykły tekst.
Znaki główne XML
Aby wykryć dokumenty XML, Tika analizuje dokumenty xml i wyodrębnia informacje, takie jak elementy główne, przestrzenie nazw i schematy, do których istnieją odniesienia, z których można znaleźć rzeczywisty typ multimediów plików.
Wykrywanie typu przy użyciu klasy fasady
Plik detect()metoda klasy elewacji służy do wykrywania typu dokumentu. Ta metoda akceptuje plik jako dane wejściowe. Poniżej przedstawiono przykładowy program do wykrywania typu dokumentów z klasą elewacji 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);
}
}
Zapisz powyższy kod jako TypeDetection.java i uruchom go z wiersza polecenia za pomocą następujących poleceń -
javac TypeDetection.java
java TypeDetection
audio/mpeg