Есть в планах расширенная поддержка файла mime-types, как это делается в пакете mailcap? который достаточно редко обновляется.
Задача файла mime.types не в том, чтобы вобрать в себя все известные типы, а в том, чтобы содержать те 5-7 типов, которые чаще всего нужны для типичного ресурса.
Большое количество записей в этом файле негативно скажется на производительности. Пользователь скорее должен быть заинтересован в том, чтобы держать этот файл компактным.
Хотелось бы, чтобы хватало указания дефолтного файла из дистрибутива пакета. Как мне кажется, по умолчанию не всех mime-types хватает, поэтому, например в Roundcube, рекомендуют его изменить на вариант из mailcap.
Если каких-то конкретных не хватает, то можно рассмотреть их добавление туда. Но решение будет приниматься исходя из распространнености формата в вебе.
Половину mime-типов в mailcap вы никогда не встретите в реальности, а просто так способствовать глобальному потеплению - тоже не хотелось бы.
В каком формате можно предлагать изменения?
В виде pull-реквеста на GitHub. Или же просто написать тут каких популярных форматов не хватает.
Пока выкладываю изменения для существующих mime-types. Для обновления использовались следующие источники:
- Media Types
- mime.types · master · Debian / Media Types · GitLab
- Office 2007 File Format MIME Types for HTTP Content Streaming - VSOfficeDeveloper: Known Problems, Bugs, and Fixes - Site Home - MSDN Blogs
- Artifact MIME types - Clarive Docs
Часть расширений перенесены в другие mime-types? другая часть переименована. В некоторая типы добавлены дополнительные расширения, которые указаны в IANA.
При необходимость, потом могу попробовать разбить на отдельные коммиты.
diff --git a/conf/mime.types b/conf/mime.types
index 1c00d701a..bf349d60a 100644
--- a/conf/mime.types
+++ b/conf/mime.types
@@ -14,6 +14,7 @@ types {
text/vnd.sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/x-component htc;
+ text/x-tcl tk;
image/avif avif;
image/png png;
@@ -23,7 +24,10 @@ types {
image/webp webp;
image/x-icon ico;
image/x-jng jng;
- image/x-ms-bmp bmp;
+ image/bmp bmp dib;
+
+ model/prc prc;
+ model/vnd.gdl gdl gsm win dor lmp rsm msm ism;
font/woff woff;
font/woff2 woff2;
@@ -32,15 +36,19 @@ types {
application/json json;
application/mac-binhex40 hqx;
application/msword doc;
+ application/pem-certificate-chain pem;
application/pdf pdf;
- application/postscript ps eps ai;
+ application/postscript ps ai eps epsi epsf eps2 eps3;
application/rtf rtf;
- application/vnd.apple.mpegurl m3u8;
+ application/vnd.adobe.flash.movie swf;
+ application/vnd.apple.mpegurl m3u m3u8;
+ application/vnd.debian.binary-package deb udeb;
application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz;
- application/vnd.ms-excel xls;
+ application/vnd.microsoft.portable-executable exe dll;
+ application/vnd.ms-excel xls xlm xla xlc xlt xlw;
application/vnd.ms-fontobject eot;
- application/vnd.ms-powerpoint ppt;
+ application/vnd.ms-powerpoint ppt pps;
application/vnd.oasis.opendocument.graphics odg;
application/vnd.oasis.opendocument.presentation odp;
application/vnd.oasis.opendocument.spreadsheet ods;
@@ -51,49 +59,49 @@ types {
xlsx;
application/vnd.openxmlformats-officedocument.wordprocessingml.document
docx;
- application/vnd.wap.wmlc wmlc;
+ application/vnd.palm pdb pqa oprc;
+ application/vnd.rar rar;
+ application/vnd.wap.wmlc wmlc wbxml;
application/wasm wasm;
application/x-7z-compressed 7z;
+ application/x-apple-diskimage dmg;
+ application/x-iso9660-image iso;
application/x-cocoa cco;
application/x-java-archive-diff jardiff;
application/x-java-jnlp-file jnlp;
application/x-makeself run;
+ application/x-msdos-program com bat;
+ application/x-msi msi;
application/x-perl pl pm;
- application/x-pilot prc pdb;
- application/x-rar-compressed rar;
application/x-redhat-package-manager rpm;
application/x-sea sea;
- application/x-shockwave-flash swf;
- application/x-stuffit sit;
- application/x-tcl tcl tk;
- application/x-x509-ca-cert der pem crt;
+ application/x-stuffit sit sitx;
+ application/x-tcl tcl;
+ application/x-x509-ca-cert der crt;
application/x-xpinstall xpi;
application/xhtml+xml xhtml;
application/xspf+xml xspf;
application/zip zip;
- application/octet-stream bin exe dll;
- application/octet-stream deb;
- application/octet-stream dmg;
- application/octet-stream iso img;
- application/octet-stream msi msp msm;
+ application/octet-stream bin deploy msu msp;
+ application/octet-stream img;
- audio/midi mid midi kar;
- audio/mpeg mp3;
- audio/ogg ogg;
- audio/x-m4a m4a;
- audio/x-realaudio ra;
+ audio/midi midi kar;
+ audio/mpeg mp1 mp2 mp3;
+ audio/ogg oga ogg opus spx;
+ audio/sp-midi mid;
+ audio/mp4 m4a;
+ audio/x-pn-realaudio ra rm ram;
video/3gpp 3gpp 3gp;
video/mp2t ts;
- video/mp4 mp4;
- video/mpeg mpeg mpg;
- video/quicktime mov;
+ video/mp4 mp4 mpg4 m4v;
+ video/mpeg mpeg mpg mpe m1v m2v;
+ video/quicktime qt mov;
video/webm webm;
video/x-flv flv;
- video/x-m4v m4v;
video/x-mng mng;
- video/x-ms-asf asx asf;
+ video/x-ms-asf asf;
video/x-ms-wmv wmv;
video/x-msvideo avi;
}
С изменениями для существующих типов стоит быть особенно аккуратным и рациональным, т.к. такие изменения ломают обратную совместимость. На mime-типы могут быть завязаны различные механизмы и настройки, начиная от компрессии и заканчивая кэшированием. У кого-то что-то может незаметно сломаться при обновлении.
В случае Angie проблема будет ещё острее, т.к. многие переходят с nginx, копируя существующую конфигурацию, и могут не учесть разницу в файле mime-типов по умолчанию.
Я рекомендую сперва предложить указанные изменения в nginx, отправив в виде патча в список рассылки: nginx-devel Info Page.
Если их примут, то мы их подтянем в Angie при очередном мердже. Так будет гораздо лучше.
Пробовал отправить несколько коммитов для начала - Re: Mime-types: обновление , пока тишина.
Ссылка на pastebin в том вашем сообщении у меня не открывается, 404.
Я выставил срок хранение на неделю, думал должно было хватить времени.
Новая ссылка - 2023-11-25 ... * conf/mime.types: MIME: update application/ - Pastebin.com
Там только 4 изменения.
В среднем в nginx до ревью в списках рассылки добираются около месяца, поэтому одной недели точно мало. Лучше всего прислать в виде патча, непосредственно прикрепленного к сообщению.
Ясно, обновил патч и отправил им патч, прикреплённый к сообщению - Re: Mime-types: обновление
Прошло несколько месяцев, реакции в upstream нету
Может у вас будет возможность рассмотреть изменения?
Я видел в nginx-devel@ рассылке вчера патч на mime-типы. Давайте понаблюдаем некоторое время, может в виду недавних событий с уходом Максима подход изменится и на него отреагируют. Если нет, то тогда уже будем принимать меры.
Да, это я ещё раз попытался отправить патчи. До этого пытался сделать в другой ветке - тишина в ответ.
Есть маленький прогресс, но в Free Nginx
https://freenginx.org/hg/nginx/rev/28fbf78841dc
https://freenginx.org/hg/nginx/rev/e8b200816108
https://freenginx.org/hg/nginx/rev/9a0849fd4b46
Из более 10-ти вариантов, только 3 изменения удалось протолкнуть.
А в Nginx вообще тишина.