我有一个托管视频的应用程序,我们最近迁移到了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();
此选项工作好于小视频,但它是我的服务器上非常繁重。对于较大的视频,操作超时。
第二个选项是托管每个视频两次。
这个选项显然是不好的,因为我将不得不支付双倍的存储成本。