mime-types vs file-type
ファイルタイプ検出ライブラリ
mime-typesfile-type類似パッケージ:

ファイルタイプ検出ライブラリ

ファイルタイプ検出ライブラリは、ファイルの種類を特定するために使用されるツールです。これらのライブラリは、ファイルの拡張子や内容に基づいて、正確なMIMEタイプを判別することができます。これにより、アプリケーションはファイルを適切に処理し、ユーザーに正しい情報を提供することが可能になります。

npmのダウンロードトレンド

3 年

GitHub Starsランキング

統計詳細

パッケージ
ダウンロード数
Stars
サイズ
Issues
公開日時
ライセンス
mime-types152,462,3561,44822.9 kB223ヶ月前MIT
file-type33,787,4214,227110 kB32ヶ月前MIT

機能比較: mime-types vs file-type

ファイルタイプ検出

  • mime-types:

    mime-typesは、ファイルの拡張子に基づいてMIMEタイプを返します。これは、特定の拡張子に関連付けられたMIMEタイプのデータベースを使用しており、拡張子が正確である限り、迅速にMIMEタイプを取得できます。

  • file-type:

    file-typeは、ファイルのバイナリデータを解析して、その内容に基づいてMIMEタイプを特定します。これにより、ファイルの拡張子が不正確であっても、正確なファイルタイプを取得できます。特に、画像や音声、動画などのメディアファイルの検出に優れています。

選び方: mime-types vs file-type

  • mime-types:

    ファイルの拡張子に基づいてMIMEタイプを取得したい場合は、mime-typesを選択してください。特に、既知の拡張子のリストからMIMEタイプを簡単に取得したい場合に便利です。

  • file-type:

    ファイルの内容に基づいてMIMEタイプを検出する必要がある場合、file-typeを選択してください。特に、バイナリファイルやストリームからのタイプ検出が必要な場合に最適です。

mime-types のREADME

mime-types

NPM Version NPM Downloads Node.js Version Build Status Test Coverage

The ultimate javascript content-type utility.

Similar to the mime@1.x module, except:

  • No fallbacks. Instead of naively returning the first available type, mime-types simply returns false, so do var type = mime.lookup('unrecognized') || 'application/octet-stream'.
  • No new Mime() business, so you could do var lookup = require('mime-types').lookup.
  • No .define() functionality
  • Bug fixes for .lookup(path)

Otherwise, the API is compatible with mime 1.x.

Install

This is a Node.js module available through the npm registry. Installation is done using the npm install command:

$ npm install mime-types

Note on MIME Type Data and Semver

This package considers the programmatic api as the semver compatibility. Additionally, the package which provides the MIME data for this package (mime-db) also considers it's programmatic api as the semver contract. This means the MIME type resolution is not considered in the semver bumps.

In the past the version of mime-db was pinned to give two decision points when adopting MIME data changes. This is no longer true. We still update the mime-db package here as a minor release when necessary, but will use a ^ range going forward. This means that if you want to pin your mime-db data you will need to do it in your application. While this expectation was not set in docs until now, it is how the pacakge operated, so we do not feel this is a breaking change.

If you wish to pin your mime-db version you can do that with overrides via your package manager of choice. See their documentation for how to correctly configure that.

Adding Types

All mime types are based on mime-db, so open a PR there if you'd like to add mime types.

API

var mime = require('mime-types')

All functions return false if input is invalid or not found.

mime.lookup(path)

Lookup the content-type associated with a file.

mime.lookup('json') // 'application/json'
mime.lookup('.md') // 'text/markdown'
mime.lookup('file.html') // 'text/html'
mime.lookup('folder/file.js') // 'application/javascript'
mime.lookup('folder/.htaccess') // false

mime.lookup('cats') // false

mime.contentType(type)

Create a full content-type header given a content-type or extension. When given an extension, mime.lookup is used to get the matching content-type, otherwise the given content-type is used. Then if the content-type does not already have a charset parameter, mime.charset is used to get the default charset and add to the returned content-type.

mime.contentType('markdown') // 'text/x-markdown; charset=utf-8'
mime.contentType('file.json') // 'application/json; charset=utf-8'
mime.contentType('text/html') // 'text/html; charset=utf-8'
mime.contentType('text/html; charset=iso-8859-1') // 'text/html; charset=iso-8859-1'

// from a full path
mime.contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8'

mime.extension(type)

Get the default extension for a content-type.

mime.extension('application/octet-stream') // 'bin'

mime.charset(type)

Lookup the implied default charset of a content-type.

mime.charset('text/markdown') // 'UTF-8'

var type = mime.types[extension]

A map of content-types by extension.

[extensions...] = mime.extensions[type]

A map of extensions by content-type.

License

MIT