У меня есть веб-приложение MVC, работающее в Azure, которое обслуживает большие файлы, такие как mp3, pdf и т. Д., Которые хранятся в облачном хранилище.Как лучше всего обслуживать эти файлы, чтобы пользователи могли загружать их, нажимая на ссылку / кнопку?
Самый простой способ - просто показать их с помощью:
<a href="...blob.core.windows.net/container/file.mp3">
Но затем пользователь должен щелкнуть правой кнопкой мыши, чтобы загрузить.
Чтобы принудительно загрузить файл, вы можете вернуть File ActionResult:
public ActionResult GetPDF( string filename )
{
return File( filename, "application/pdf", Server.HtmlEncode( filename ) );
}
Недостаток с этим (я думаю)заключается в том, что веб-ролик должен считывать файлы и выводить их в поток, который будет потреблять ресурсы и потенциально ослаблять роль многих пользователей.Принимая во внимание, что простое решение href link в основном откладывает работу, поэтому браузер общается напрямую с облачным хранилищем.
Я прав?Должен ли я быть обеспокоен дополнительной работой в сети?
Есть ли другой способ принудительно загрузить файл, не обременяя веб-роль?
ОБНОВЛЕНИЕ:
Так что я закончил тем, что загрузил бинарные файлы mp3 с Content-Type "/ octet-stream "- это похоже на форсирование загрузки.Не уверен, что это хорошая практика, но пока она работает.