Windows Azure - хранить неизвестные (mp4) типы MIME в хранилище IAS для Windows Azure
У меня есть azure-развертывание windows (веб-роль), которое по запросу захватывает пару видеофайлов (mov и mp4) из лазурного хранилища в свое собственное локальное хранилище IIS, которое затем я получаю через браузер.
Это может показаться глупым, но у меня есть веские причины для этого.
К сожалению, я не могу получить доступ к файлам mp4. Мов хорош, но mp4 дает мне "404 - Файл или каталог не найден".
Я изучил это, и похоже, что IIS не будет возвращать неизвестные типы файлов, а mp4 должна подпадать под эту категорию. Если бы это был обычный сервер IIS, я мог бы зарегистрировать тип mime mp4, но я не знаю, как это сделать в Windows Azure.
Я мог бы использовать RDP и делать это вручную, но это было бы непрактично, поскольку роль часто заменялась и означала бы, что мне нужно будет повторно делать это вручную каждый раз. Это должно быть сделано через один из конфигурационных файлов или в коде.
Может ли кто-нибудь помочь?
Спасибо!!
Стивен
Ответы
Ответ 1
Нельзя добавить пользовательский тип mime в web.config? Я просто столкнулся с этой ссылкой:
http://www.iis.net/ConfigReference/system.webServer/staticContent/mimeMap
Соответствующий web.config xml:
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".syx" mimeType="application/octet-stream" />
<mimeMap fileExtension=".tab" mimeType="text/plain" />
</staticContent>
</system.webServer>
</configuration>
Надеюсь, что это поможет.
Ответ 2
Я использовал предложение https://social.msdn.microsoft.com/Forums/azure/en-US/79eb0c22-fe78-41d6-ac57-03055610b2a8/mp4-media-files-on-azure-website?forum=windowsazurewebsitespreview&prof=required:
<staticContent>
<remove fileExtension=".mp4"/>
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>
Ответ 3
Чтобы настроить тип mime, создайте новый файл web.config с этим контентом в папке видео:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>
</system.webServer>
</configuration>
Это решение работает только для Azure, локальный проект больше не работает. Мое решение заключается в использовании "Add Config Transform" для публикации с пустым файлом web.config для локального проекта:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
</configuration>
И когда вы щелкните правой кнопкой мыши по web.config, выберите "Добавить конфигурационное преобразование":
![введите описание изображения здесь]()
В файле web.Release.config добавьте это в тег конфигурации:
<system.webServer xdt:Transform="Insert">
<staticContent>
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>
</system.webServer>
Ответ 4
Вы также можете увидеть подробности использования портала Azure вместо web.config.
ответил здесь