3 个版本
使用旧的 Rust 2015
0.1.2 | 2018年1月12日 |
---|---|
0.1.1 | 2017年1月6日 |
0.1.0 | 2017年1月4日 |
#6 in #sniffer
4,844 monthly downloads
用于 5 crates
42KB
643 行
mime-sniffer
基于内容嗅探检测 MIME 类型。
检测工作流程是从 Chromium 复制的。
更多详情,请阅读 如何确定 Mozilla 的 MIME 类型。
用法
要使用 mime-sniffer
,首先将以下内容添加到您的 Cargo.toml
[dependencies]
mime_sniffer = "^0.1"
然后,将其添加到您的 crate 根目录
extern crate mime_sniffer;
use mime_sniffer::MimeTypeSniffer;
然后,使用模块或散列函数
use mime_sniffer::MimeTypeSniffer;
assert_eq!(Some("application/pdf"), b"%PDF-1.5".sniff_mime_type());
示例
extern crate url;
#[macro_use]
extern crate mime;
extern crate mime_sniffer;
use url::Url;
use mime_sniffer::{HttpRequest, MimeTypeSniffer, MimeTypeSniffable, MimeTypeSnifferExt};
let url = Url::parse("https://127.0.0.1/notes.ppt").unwrap();
let req = HttpRequest {
content: b"\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1",
url: &url,
type_hint: "text/plain",
};
assert!(req.should_sniff_mime_type());
assert_eq!(Some("application/vnd.ms-powerpoint"), req.sniff_mime_type());
assert_eq!(mime!(Application/("vnd.ms-powerpoint")),
req.sniff_mime_type_ext().unwrap());
相关
- 要识别二进制文件类型,您可能需要与 rust 绑定的 rust-magic crate 一起使用 libmagic。
- 要猜测 MIME 类型通过文件扩展名,您可能需要 mime_guess crate。
- 要将 MIME 类型作为强类型进行管理,您可能需要 mime.rs crate。
依赖关系
~1.5MB
~50K SLoC