我在Azure blob存储中存储.mp4
视频时遇到问题,以便在Azure上托管的网站中显示。视频类型设置为video/mp4
,存储帐户不公开,但它链接到网络角色,我使用这段代码更新了版本:
var credentials = new StorageCredentials("myaccountname", "mysecretkey");
var account = new CloudStorageAccount(credentials, true);
var client = account.CreateCloudBlobClient();
var properties = client.GetServiceProperties();
properties.DefaultServiceVersion = "2012-02-12";
client.SetServiceProperties(properties);
我没有使用任何视频播放器,只使用HTML5视频标签。我也不需要任何花哨的东西,我只想播放视频。
查看Chrome开发工具中的网络标签,GET
请求获取视频有两个条目。第一个状态为(pending)
,下一个状态为(canceled)
。
我还给了一个链接到网站内容文件夹中的视频。这个也以pending
开头,但是使用204 Partial Content
解决,视频播放得很好。
我没有看到的东西,任何帮助和指示都表示赞赏。
答案 0 :(得分:6)
根据您的上述评论,您需要的是Shared Access Signature
。使用以下代码在mp4文件上创建共享访问签名。
var credentials = new StorageCredentials("myaccountname", "mysecretkey");
var account = new CloudStorageAccount(credentials, true);
var container = account.CreateCloudBlobClient().GetContainerReference("yourcontainername");
var blob = container.GetBlockBlobReference("yourmp4filename");
var sas = blob.GetSharedAccessSignature(new SharedAccessBlobPolicy()
{
Permissions = SharedAccessBlobPermissions.Read,
SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1),//Set this date/time according to your requirements
});
var urlToBePlayed = string.Format("{0}{1}", blob.Uri, sas);//This is the URI which should be embedded in your video player.