mime-db
这是一个mime类型和有关它们的信息的大型数据库。 它由一个单一的公共JSON文件组成,不包含任何逻辑, 允许它在使用API时尽可能保持不固执己见。 它汇集了以下来源的数据:
- https://www.iana.org/assignments/media-types/media-types.xhtml
- https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
- https://hg.nginx.org/nginx/raw-file/default/conf/mime.types
安装
npm install mime-db
数据库下载
如果您打算在web浏览器中使用它,您可以方便地通过 jsDelivr一个流行的CDN(内容分发网络)。为确保稳定性和兼容性,建议指定 释放标签 而不是使用“master”分支。这是因为JSON文件的格式可能会在未来的更新中更改,并且依赖于特定的发布标记将防止这些更改引起的潜在问题。
https://cdn.jsdelivr.net/gh/jshttp/mime-db@master/db.json
用法
var db = require('mime-db')
// grab data on .js files
var data = db['application/javascript']
数据结构
JSON文件是一个查找小写mime类型的映射。 每种mime类型都有以下属性:
.source-定义mime类型的地方。 如果没有设置,它可能是自定义媒体类型。apache- Apache常用媒体类型iana- iana定义的媒体类型nginx- Nginx媒体类型
.extensions[]-与此mime类型相关的已知扩展名。.compressible-是否可以压缩该类型的文件。.charset-与此类型关联的默认字符集,如果有的话。
如果未知,每个属性都可以 undefined。
关于MIME类型数据和Semver的注意事项
该包将编程api视为服务器兼容性。这意味着MIME类型解析为 不 被认为是
在semver颠簸中。这意味着如果你想把你的 mime-db 您在应用程序中需要的数据。而
到目前为止,这个期望还没有在文档中设定,这就是包的运行方式,所以我们不觉得这是一个突破性的变化。
贡献
对该数据库进行贡献的主要方法是更新中的数据 上游来源之一。数据库从上游更新 并将拉入任何更改。
注册媒体类型
获取此库中包含的新媒体类型的最佳方法是注册 他们与IANA。社区注册程序概述于 RFC 6838第5节. 类型 在IANA注册的文件都被自动拉入这个库。
直接包含
如果这是不可能/不可行的,他们可以直接添加在这里作为一个 “自定义”类型。要做到这一点,需要有一个主要的来源 明确列出媒体类型。如果扩展将被列为 与此媒体类型相关联,源必须明确地链接 媒体类型和扩展。
要编辑数据库,只能对其进行pr src/custom-types.json 或
src/custom-suffix.json。
这个 src/custom-types.json 文件是一个JSON对象,MIME类型为
键和值是一个具有以下键的对象:
compressible-不知道的可以省略,否则true/false来 指示由类型表示的数据通常是否可压缩。extensions-包含与关联的文件扩展名数组 的类型。notes-关于类型的人类可读注释,通常是什么类型。sources-包括一个数组的url,其中MIME类型和相关的 扩展来自。这需要是a 主要来源; 链接到类型聚合网站和维基百科 不能接受的。
要更新构建,请运行 npm run build。