mimesniffer

package module
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 3, 2022 License: MIT Imports: 5 Imported by: 3

README

MIMESniffer

GitHub Actions codecov Go Report Card PkgGoDev

A MIME type sniffer for Go.

MIMESniffer implements the algorithm described at here and uses the file signatures (aka magic numbers) listed here to determine the MIME type of the given data. So it can be used as an alternative for the http.DetectContentType.

Features

  • Extremely easy to use
  • Quite fast
  • Supports a wide range of MIME types
    • application/epub+zip
    • application/font-sfnt
    • application/font-woff
    • application/msword
    • application/octet-stream
    • application/ogg
    • application/pdf
    • application/postscript
    • application/rtf
    • application/vnd.ms-cab-compressed
    • application/vnd.ms-excel
    • application/vnd.ms-fontobject
    • application/vnd.ms-powerpoint
    • application/vnd.openxmlformats-officedocument.presentationml.presentation
    • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    • application/vnd.openxmlformats-officedocument.wordprocessingml.document
    • application/wasm
    • application/x-7z-compressed
    • application/x-bzip2
    • application/x-compress
    • application/x-deb
    • application/x-executable
    • application/x-google-chrome-extension
    • application/x-gzip
    • application/x-lzip
    • application/x-msdownload
    • application/x-nintendo-nes-rom
    • application/x-rar-compressed
    • application/x-rpm
    • application/x-shockwave-flash
    • application/x-sqlite3
    • application/x-tar
    • application/x-unix-archive
    • application/x-xz
    • application/zip
    • audio/aac
    • audio/aiff
    • audio/amr
    • audio/basic
    • audio/m4a
    • audio/midi
    • audio/mpeg
    • audio/ogg
    • audio/wave
    • audio/x-flac
    • audio/x-wav
    • font/collection
    • font/otf
    • font/ttf
    • font/woff2
    • font/woff
    • image/bmp
    • image/gif
    • image/jp2
    • image/jpeg
    • image/png
    • image/tiff
    • image/vnd.adobe.photoshop
    • image/vnd.microsoft.icon
    • image/webp
    • image/x-canon-cr2
    • text/html; charset=utf-8
    • text/plain; charset=utf-16be
    • text/plain; charset=utf-16le
    • text/plain; charset=utf-8
    • text/xml; charset=utf-8
    • video/avi
    • video/mp4
    • video/mpeg
    • video/quicktime
    • video/webm
    • video/x-flv
    • video/x-m4v
    • video/x-matroska
    • video/x-ms-wmv
    • video/x-msvideo
  • Zero third-party dependencies

Installation

Open your terminal and execute

$ go get github.com/aofei/mimesniffer

done.

The only requirement is the Go, at least v1.13.

Community

If you want to discuss MIMESniffer, or ask questions about it, simply post questions or ideas here.

Contributing

If you want to help build MIMESniffer, simply follow this to send pull requests here.

License

This project is licensed under the MIT License.

License can be found here.

Documentation

Overview

Package mimesniffer implements a MIME type sniffer for Go.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Register

func Register(mimeType string, sniffer func([]byte) bool)

Register registers the sniffer for the mimeType. Invalid MIME types will be silently dropped.

func Sniff

func Sniff(b []byte) string

Sniff sniffs the MIME type of the b. It considers at most the first 512 bytes of the b. It returns "application/octet-stream" if it cannot determine a more specific one.

The returned MIME type is always valid.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL