Укажите тип содержимого для документов, загруженных в Magnolia

Мы загрузили в нашу Magnolia DMS видеофайл в формате mp4, который не воспроизводится в Safari (Mac/iPad). Исследование показывает, что Content-Type, возвращенный Magnolia, является «application/octet-stream» для запроса. При передаче файла напрямую через Tomcat возвращается правильный Content-Type "video/mp4", и воспроизведение видео работает.

Как мы можем настроить возвращаемый тип контента в Magnolia?

Мы знаем, что тип содержимого является функцией запроса (например, если мы добавим «.jpg» к URL-адресу, возвращаемый тип будет «image/jpeg»), но не можем использовать это знание, чтобы придумать решение.

Обновление:

Мы нашли конфигурацию MIME и смогли изменить Content-Type для «mp4» на «video/mp4». Однако Content-Type, возвращаемый Magnolia, теперь

Тип контента: видео/mp4; кодировка = UTF-8

в то время как правильный рабочий Content-Type, возвращаемый для файлов, размещенных Tomcat,

Тип контента: видео/mp4

Можно ли заставить Magnolia не добавлять информацию о кодировке к Content-Type?


person Tom    schedule 27.09.2011    source источник


Ответы (1)


Рад, что вы нашли конфигурацию MIME в порядке.

И тип MIME, и кодировка символов задаются в ContentTypeFilter.java и MIMEMapping.java. Вы можете указать кодировку для MIME-типа самостоятельно, включив ее в определение MIME-типа. (Например, "видео/mp4;кодировка=UTF-8".)

Однако, если вы его не укажете, Magnolia автоматически присвоит значение по умолчанию (в данном случае UTF-8). Если вы хотите изменить это поведение, вам нужно настроить исходный код.

Из любопытства, кодировка вызывает у вас какие-либо проблемы, или вы просто пытаетесь заставить Magnolia соответствовать тому, что делает Tomcat по умолчанию?

person Sean McMains    schedule 27.09.2011
comment
Ура .. Мы не знаем, действительно ли эта кодировка вызывает проблемы, все, что мы знаем, это то, что как только мы загружаем mp4 в Magnolia, он не воспроизводится на Safari/Mac. Очевидная разница заключается в типе MIME, но на данный момент мы подозреваем, что это что-то другое. - person Tom; 28.09.2011
comment
Как ты играешь? Magnolia также добавляет заголовок Content-Disposition, который иногда может вызывать проблемы со встроенным содержимым. Однако вы можете отключить это: documentation.magnolia-cms.com/modules/dms. html (см. Отключение заголовков Content-Disposition по типу MIME) - person Sean McMains; 29.09.2011
comment
Воспроизводим файл через тег html5 video. Мы пытались отключить Content-Disposition для каждого типа контента и для каждого пути, но он остается во вложении Content-Disposition; filename=video.mp4 в заголовках. После дополнительных исследований из-за некоторого BYTE_RANGE_ERROR_MESSAGE на ipad мы обнаружили, что Safari/iOS использует диапазоны байтов HTTP для запроса аудио- и видеофайлов. Теперь мы предполагаем, что файловая служба Magnolia DMS не поддерживает эту функцию, и, следовательно, потоковая передача не работает. - person Tom; 29.09.2011
comment
Ах, вы правы. В настоящее время Magnolia не поддерживает запросы диапазона байтов. Я добавил билет в Jira, чтобы добавить: jira.magnolia-cms. com/browse/MGNLDMS-215 - person Sean McMains; 29.09.2011
comment
Только что проверил, проблема исправлена - person Tom; 15.11.2011