媒体类型识别器存储在哪里以及如何添加识别器?

媒体类型识别器存储在哪里以及如何添加识别器?

当一个人写一个html文件时,linux可以声明MIME类型是text/html。这是如何处理的? “识别器”存储在哪里?如何使用已实现的识别器添加 MIME 类型?

答案1

通常有两个库可以处理这个问题。这共享 mime 信息图书馆是最大的图书馆。然而也有文件提供“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/

相关内容