#mime #byte #detect #file #magic #detech

mimetype

从文件字节中检测 MIME 类型

7 个版本

0.1.6 2024 年 8 月 11 日
0.1.5 2024 年 8 月 11 日

#541解析器实现

Download history 405/week @ 2024-08-05 76/week @ 2024-08-12

481 每月下载量

Apache-2.0

98KB
2.5K SLoC

rdcache

Crates.io MIT/Apache-2 licensed

Rust 版本的 mimetype

功能

  • 根据文件的“魔数”字节检测 MIME 类型。

示例

同步版本

将以下内容添加到您的 Cargo.toml

[dependencies]
mimetype = "0.1.6"

然后您可以像这样使用它

fn main() {
    let file = std::fs::read("test.jpg").unwrap();

    let mime = mimetype::detect(&file);

    println!("{:?}", mime);
}

或者使用读取器

fn main() {
    let file = std::fs::File::open("Cargo.toml").unwrap();

    let mime = mimetype::detect(&file);

    println!("{:?}", mime);
}

异步版本

将以下内容添加到您的 Cargo.toml

[dependencies]
mimetype = { version = "0.1.6", features = ["async"] }

然后您可以像这样使用它

#[tokio::main]
async fn main() {
    let file = tokio::fs::read("test.jpg").await.unwrap();

    let mime = mimetype::detect_async(&file).await;

    println!("{:?}", mime);
}

或者使用读取器

#[tokio::main]
async fn main() {
    let file = tokio::fs::File::open("test.jpg").await.unwrap();

    let mime = mimetype::detect_async(&file).await;

    println!("{:?}", mime);
}

输出将如下所示

Mime { mime: "image/jpeg", aliases: [], extension: ".jpg" }

依赖项

~2.3–9MB
~84K SLoC