我有一個託管視頻的應用程序,我們最近遷移到了Azure。如何設置個人天藍色blob請求上的內容處置?
在我們的舊應用程序中,我們賦予用戶播放或下載視頻的能力。但是,在Azure上,似乎必須選擇我想要的功能,因爲必須在文件上設置內容處置,而不是在請求上設置內容處置。
到目前爲止,我已經想出了兩個非常差的解決方案。
第一個解決方案是通過我的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();
此選項工作好於小視頻,但它是我的服務器上非常繁重。對於較大的視頻,操作超時。
第二個選項是託管每個視頻兩次。
這個選項顯然是不好的,因爲我將不得不支付雙倍的存儲成本。