Mime-Types

媒體類型的辨識器儲存在哪里以及如何添加?

  • December 6, 2013

當編寫一個 html 文件時,linux 可以聲明 MIME 類型是 text/html。這是如何處理的?“辨識器”儲存在哪裡?如何使用已實現的辨識器添加 MIME 類型?

通常有 2 個庫可以處理這個問題。shared-mime-info庫是最大的庫。然而,還有提供“libmagic”的文件實用程序。

這些中的每一個都維護自己的數據庫。然而,shared-mime-info 更為常見,並且被設計為可擴展的。

至於如何添加條目,我係統上的位置是/usr/share/mime,儘管它可能因發行版而異。基本上,您只需在其中添加一個 xml 文件,該文件說明如何辨識您的文件格式(在我的系統上,包將它們的文件放在/usr/share/mime/packages.

添加 xml 文件後,使用update-mime-database命令重新生成記憶體。

(在 shared-mime-info 項目網站上有一個很好的教程:http: //freedesktop.org/wiki/Specifications/AddingMIMETutor/

他們的範例文件如下所示:

<?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>

xml 文件的完整規範等一般資源也最好從項目站點獲得:http: //freedesktop.org/wiki/Specifications/shared-mime-info-spec/

引用自:https://unix.stackexchange.com/questions/103955