Onde os reconhecedores de tipos de mídia são armazenados e como adicionar um?

3

Quando alguém escreve um arquivo html, o linux pode afirmar que o tipo MIME é text / html. Como isso é tratado? Onde os "reconhecedores" são armazenados? Como se pode adicionar um tipo MIME com um reconhecedor implementado?

    
por Willem Van Onsem 06.12.2013 / 02:06

1 resposta

2

Existem 2 bibliotecas que normalmente lidam com isso. A biblioteca shared-mime-info é a grande. No entanto, há também o utilitário arquivo que fornece 'libmagic'.

Cada um deles mantém seu próprio banco de dados. No entanto, o shared-mime-info é mais comum e projetado para ser extensível.

Quanto a como adicionar uma entrada, o local no meu sistema é /usr/share/mime , embora possa variar de acordo com a distribuição. Basicamente você acabou de adicionar um arquivo xml lá que explica como identificar seu formato de arquivo (no meu sistema, os pacotes colocam seus arquivos em /usr/share/mime/packages ). Depois de adicionar seu arquivo xml, use o comando update-mime-database para gerar novamente o cache. (Há um belo tutorial disponível no site do projeto shared-mime-info: link )

O arquivo de exemplo é assim:

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <mime-type type="image/png">
         <comment xml:lang="en">PNG image</comment>
         <comment xml:lang="af">png beeld</comment>
         ...
         <magic priority="50">
                <match type="string" value="\x89PNG" offset="0"/>
         </magic>
         <glob pattern="*.png"/>
  </mime-type>
</mime-info>

Recursos gerais, como a especificação completa do arquivo xml, também são mais bem obtidos no site do projeto: link

    
por 06.12.2013 / 06:54

Tags