<-
Apache > HTTP Server > Documentation > Version 2.0 > Modules

Apache Модуль mod_mime_magic

Description: определяет тип MIME файла, смотря на несколько байтов его содержания
Status: расширение
Module Identifier: mime_magic_module
Source File: mod_mime_magic.c

резюме

этот модуль определяет тип MIME файлов таким же образом Unix file(1) работы команды: это смотрит на первые немного байтов файла. Это предназначено как "вторая линия защиты" для случаев это mod_mime не может решить.

этот модуль получен из свободной версии file(1) команда для Unix, который использует "волшебные числа" и другие намеки от содержания файла, чтобы выяснить, каково содержание. Этот модуль активен, только если волшебный файл определен MimeMagicFile директива.

директивы

темы

top

Format of the Magic File

содержание файла - простой текст ASCII в 4-5 колонках. Чистые линии позволяются, но игнорируются. Прокомментированные линии используют марку мешанины ( # ). Остающиеся линии разобраны для следующих колонок:

колонка описание
1 число байта, чтобы начать проверять от
" > "указывает зависимость от предыдущего не-" > "линия
2

тип данных, чтобы соответствовать

byte единственный характер
short заказ машины 16-битовое целое число
long заказ машины 32-битовое целое число
string вереница произвольной длины
date длинная дата целого числа (секунды начиная с эпохи/1970 Unix)
beshort тупоконечник 16-битовое целое число
belong тупоконечник 32-битовое целое число
bedate тупоконечник 32-битовая дата целого числа
leshort мало--endian 16-битовое целое число
lelong мало--endian 32-битовое целое число
ledate мало--endian 32-битовая дата целого числа
3 содержание данных, чтобы соответствовать
4 тип ПАНТОМИМЫ если подобрано
5 зашифровывание ПАНТОМИМЫ, если подобрано (дополнительное)

например, следующие волшебные линии файла признали бы некоторые звуковые форматы:

# Sun/NeXT audio data 0 string .snd >12 belong 1 audio/basic >12 belong 2 audio/basic >12 belong 3 audio/basic >12 belong 4 audio/basic >12 belong 5 audio/basic >12 belong 6 audio/basic >12 belong 7 audio/basic >12 belong 23 audio/x-adpcm

или они признали бы различие между *.doc файлы, содержащие Microsoft Word или документы Плотника. (Они - несовместимые форматы файла, которые используют тот же самый суффикс файла.)

# Frame 0 string \<MakerFile application/x-frame 0 string \<MIFFile application/x-frame 0 string \<MakerDictionary application/x-frame 0 string \<MakerScreenFon application/x-frame 0 string \<MML application/x-frame 0 string \<Book application/x-frame 0 string \<Maker application/x-frame # MS-Word 0 string \376\067\0\043 application/msword 0 string \320\317\021\340\241\261 application/msword 0 string \333\245-\0\0\0 application/msword

дополнительное зашифровывание ПАНТОМИМЫ может быть включено как пятая колонка. Например, это может признать gzipped файлы и установить зашифровывание для них.

# gzip (GNU zip, not to be confused with # [Info-ZIP/PKWARE] zip archiver) 0 string \037\213 application/octet-stream x-gzip
top

Performance Issues

этот модуль не для каждой системы. Если ваша система только не отстает от ее груза или если Вы выполняете точку отсчета сервера сети, Вы не можете хотеть позволить этому, потому что обработка не свободна.

однако, усилие было предпринято, чтобы улучшить работу оригинала file(1) кодекс, чтобы сделать это, чтобы соответствовать в занятом сервере сети. Это было разработано для сервера, где есть тысячи пользователей, которые издают их собственные документы. Это вероятно очень обычно на интранете. Много раз, полезно, если сервер может принять более интеллектуальные решения о содержании файла, чем название файла позволяет ..., даже если только уменьшить, "почему не делает мои запросы" работы страницы, когда пользователи ненадлежащим образом называют их собственные файлы. Вы должны решить, удовлетворяет ли дополнительная работа вашей окружающей среде.

top

Notes

следующие примечания обращаются mod_mime_magic модуль и включен здесь для согласия с ограничениями авторского права вкладчиков, которые требуют их подтверждения.

mod_mime_magic: поиск типа MIME через числа волшебства файла
Copyright (c) 1996-1997 Cisco Systems, Inc.

это программное обеспечение было представлено Cisco Системы к Apacheской Группе в июле 1997. Будущие пересмотры и производные этого исходного текста должны признать Cisco Системы как оригинальный вкладчик этого модуля. Все другие условия лицензирования и использования - таковые из Apacheской Группы.

часть этого кодекса получена из свободной версии команды файла, первоначально объявленной к comp.sources.unix. Информация авторского права для той программы включена ниже как требуется.

- Copyright (c) Ian F. Дарвин, 1987. Написанный Ианом Ф. Дарвин.

это программное обеспечение не подчинено любой лицензии американской Компании Телефона и Телеграфа или Регентов Университета Калифорнии.

разрешение предоставляют любому использовать это программное обеспечение в любой цели на любой компьютерной системе, и изменять это и перераспределять это свободно, подчиненный следующим ограничениям:

  1. автор не ответственен за последствия использования этого программного обеспечения, независимо от того как ужасный, даже если они являются результатом недостатков в этом.
  2. происхождение этого программного обеспечения не должно быть искажено, или в соответствии с явным требованием или в соответствии с упущением. Так как немного пользователей когда-либо читают источники, кредиты должны появиться в документации.
  3. измененные версии должны быть явно отмечены также, и не должны быть искажены как являющийся оригинальным программным обеспечением. Так как немного пользователей когда-либо читают источники, кредиты должны появиться в документации.
  4. это уведомление не может быть удалено или измениться.

для согласия со сроками г. Дарвина: это было очень значительно изменено от свободной команды "файла".

  • единый файл для удобства компиляции, перемещаясь от одной версии Apacheа к следующему.
  • распределение памяти сделано через структуру объединения Apacheского программного интерфейса приложения.
  • все функции имели необходимый Apache запрос программного интерфейса приложения, или структуры сервера прошли к ним где необходимо, чтобы назвать другие Apacheские рутины программного интерфейса приложения. ( то есть. , обычно для заготовки леса, файлов, или распределения памяти сам по себе или названной функции.)
  • волшебство struct было преобразовано от множества до единственное-законченного связанного списка, потому что это только выращивает один отчет одновременно, к этому только получают доступ последовательно, и Apache программный интерфейс приложения не имеет никакого эквивалента realloc() .
  • функции были изменены, чтобы получить их параметры от конфигурации сервера вместо globals. (Это должен быть переучастник теперь, но не был проверен в переплетенной окружающей среде.)
  • места, где это имело обыкновение печатать результаты к stdout теперь, экономят их в списке, где они используются, чтобы установить тип MIME в Apacheском отчете запроса.
  • флаги линии команды были удалены, так как они никогда не будут использоваться здесь.
top

MimeMagicFile Directive

Description: позволить определение ТИПА ПАНТОМИМЫ, основанное на содержании файла, используя указанный волшебный файл
Syntax: MimeMagicFile file-path
Context: сервер config, действительный хозяин
Status: расширение
Module: mod_mime_magic

MimeMagicFile директива может использоваться, чтобы позволить этот модуль, файл по умолчанию распределен в conf/magic . невнедренные дорожки - относительно ServerRoot . действительные хозяева будут использовать тот же самый файл как главный сервер, если более определенное урегулирование не используется, когда более определенное урегулирование отвергает файл главного сервера.

Example

MimeMagicFile conf/magic