¿Cómo establecer la disposición de contenido en solicitudes individuales de blobs azules?
Tengo una aplicación que aloja videos, y recientemente migramos a Azure.
En nuestra antigua aplicación, brindamos a los usuarios la posibilidad de reproducir o descargar el video. Sin embargo, en Azure parece que tengo que elegir entre qué funcionalidad quiero, ya que la disposición del contenido debe establecerse en el archivo y no en la solicitud.
Hasta ahora se me ocurrieron dos soluciones muy pobres.
La primera solución es transmitir la descarga a través de mi servidor MVC.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("videos");
string userFileName = service.FirstName + service.LastName + "Video.mp4";
Response.AddHeader("Content-Disposition", "attachment; filename=" + userFileName); // force download
container.GetBlobReference(service.Video.ConvertedFilePath).DownloadToStream(Response.OutputStream);
return new EmptyResult();
Esta opción funciona bien para videos más pequeños, pero es muy exigente en mi servidor. Para videos más grandes, la operación agota el tiempo de espera.
La segunda opción es alojar cada video dos veces.
Esta opción es obviamente mala, ya que tendré que pagar el doble del costo de almacenamiento.