Good practices regarding MIME type

Solène Rapenne solene at perso.pw
Thu Dec 10 21:29:13 GMT 2020


Le 2020-12-10 22:26, Omar Polo a écrit :
> Solène Rapenne <solene at perso.pw> writes:
> 
>> Hi,
>> 
>> I wrote a gemini server in C and I currently use an hardcoded list of
>> file extensions <-> MIME type assocation.
>> This isn't great because it relies on file extension which can be
>> wrong, but a file without extension would
>> use a default.
>> 
>> I chose to set a default text/gemini in case the extension is unknown
>> or if the file has no extension.
>> 
>> What are the good practices to determine a file MIME type?
>> 
>> regards
>> Solène
> 
> I'm using the same approach in my server, but there are two 
> alternatives
> I know:
> 
>  - using /usr/share/misc/mime.types (still a list, but probably more
>    complete than a manual one).  Don't know if it's widespread, but
>    it's present in base on OpenBSD :)
>  - using libmagic: it's a library to detect the MIME type by reading 
> the
>    file.  it powers the file(1) command on some unices.  The drawback 
> is
>    that it needs to open and read the file, whereas guessing from the
>    extension doesn't.

I already did use that exact mime.types file, but I hardcoded it. I will
take a look at file(1) code. I target OpenBSD first but I'll see if
it can be ported easily.


More information about the Gemini mailing list