Como os MIMEs são detectados

1

Pesquisei por aí, mas não consigo encontrar nenhuma informação sobre o assunto.

Como você define o tipo MIME para um arquivo existente?

Por exemplo, estou tentando criar um arquivo com o tipo text/html

    
por Anonymous 01.04.2017 / 23:13

1 resposta

3

Os tipos MIME não são realmente armazenados no sistema de arquivos. Eles são apenas uma forma conveniente de saber como processar um arquivo. Para obter o tipo MIME, você precisa executar um programa.

Alguns programas detectam o tipo mime de um arquivo observando apenas a extensão do arquivo, enquanto outros verificam o arquivo por um número mágico ou um padrão mágico especial (essencialmente uma regex ).

Como exemplo, execute touch test.html , que cria um arquivo vazio.

Em seguida, execute xdg-mime query filetype test.html ou mimetype test.html . Ambos retornarão o tipo text/html .

No entanto, se você executar file --mime-type -b test.html , ele retornará inode/x-empty .

Portanto, se você quiser que todos os programas atuem da mesma maneira em seu arquivo, o arquivo deve ter o formato adequado (dados) junto com a extensão correta.

% bl0ck_qu0te%

Como funciona o comando de arquivo?

Na página de manual file(1) :

% bl0ck_qu0te%

Como o arquivo sabe quais padrões mágicos usar?

Novamente, na página do manual file(1) :

% bl0ck_qu0te%

Se eu executar strace file image |& grep magic , poderemos ver que o comando file procura esses arquivos:

% bl0ck_qu0te%

Existem outros arquivos como /etc/mime.types que outros programas usam. Este arquivo atribui uma extensão a um tipo MIME. Por exemplo, grep -i text/html /etc/mime.types produz:

text/html                   html htm shtml
    
por Ravexina 01.04.2017 / 23:47