Como definir a disposição do conteúdo em solicitações de blobs azuis individuais?

Eu tenho um aplicativo que hospeda vídeos e recentemente migramos para o Azure.

Em nosso aplicativo antigo, permitimos aos usuários reproduzir ou baixar o vídeo. No entanto, no Azure, parece que eu tenho que escolher entre qual funcionalidade eu quero, pois a disposição do conteúdo deve ser definida no arquivo e não na solicitação.

Até agora, encontrei duas soluções muito ruins.

A primeira solução é transmitir o download através do meu 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();

Essa opção funciona bem para vídeos menores, mas é muito desgastante no meu servidor. Para vídeos maiores, a operação expira.

A segunda opção é hospedar todos os vídeos duas vezes.

Essa opção é obviamente ruim, pois terei que pagar o dobro do custo de armazenamento.

questionAnswers(2)

yourAnswerToTheQuestion