Skip to content

erlangpack/mimetypes

Folders and files

NameName
Last commit message
Last commit date
Jun 10, 2022
Jun 10, 2022
Jun 24, 2013
Jun 6, 2022
Dec 28, 2020
Jun 10, 2022
Mar 7, 2013
Jun 6, 2022
Jun 10, 2022
Sep 9, 2011
Jan 2, 2013
Oct 1, 2012
Jun 6, 2022
Dec 28, 2020

Repository files navigation

Build Status Hex.pm version Hex.pm Downloads Hex.pm Documentation Erlang Versions

mimetypes

mimetypes is an Erlang library to fetch MIME extension/name mappings.

Usage

1> application:start(mimetypes).
ok
2> mimetypes:extension(<<"js">>).
<<"application/javascript">>
3> mimetypes:extension(<<"mb">>).
<<"application/mathematica">>
4> mimetypes:extension(<<"html">>).
<<"text/html">>
5> mimetypes:extension(<<"m3u8">>).    
[<<"application/vnd.apple.mpegurl">>,
 <<"application/x-mpegurl">>]
6> mimetypes:filename("/a/b.js").
<<"application/javascript">>
7> mimetypes:extensions(<<"application/mathematica">>).
[<<"ma">>,<<"nb">>,<<"mb">>]

Additional types

Additional mappings can be loaded at runtime using the mimetypes:load/2 function. If this function is timing out it is possible to increase the timeout using mimetypes:load/3.

1> application:start(mimetypes).
ok
2> mimetypes:load(default, [{<<"ext">>, <<"new/type">>}]).
ok
3> mimetypes:extension(<<"ext">>).
[<<"application/vnd.novadigm.ext">>,<<"new/type">>]
2> mimetypes:load(default, [{<<"ext">>, <<"new/type">>}], 10000).
ok

Additional mappings can also be specified using the application environment variables for the mimetypes application. These can be added to the config file specified using the erl -config flag.

[{mimetypes, [
    %% Wait for all additional types to be loaded before returning from
    %% application:start(mimetypes). Set to false to return immidiately
    %% and load them in the background.
    {load_async, true},
    %% Timeout to use for calls to mimetypes:load/3 while loading additional
    %% mimetypes. The default is the same as for mimetypes:load/2. You may
    %% need to increase this value.
    {load_timeout, 5000},
    {load, [
        {default, [
            {<<"ext">>, <<"new/type">>}
        ]}
    ]}
]}].