【Azure 存储服务】MP4视频放在Azure的Blob里面,用生成URL在浏览器中打开之后,视频可以正常播放却无法拖拽视频的进度
问题描述
把MP4视频放在Azure的Blob里面,用生成URL在浏览器中打开之后,视频可以正常播放却无法拖拽视频的进度,这是什么情况呢?
问题解答
因为MP4上传到Azure Blob后,根据公开的权限,可以直接通过Storage Blob URL +/ Blob Container + / Blob Name 的URL形式访问。 只是在返回的Response Header中,我们发现从Blob中返回的部分Hader中:
发现X-MS-VERSION(值表示的是Azure存储服务的版本)版本非常低,为2009-09-19版本(一个13年前的版本)。该版本不支持视频文件拖动功能。所以解决的办法为通过PowerShell命令修改Blob文件的x-ms-version。
PowerShell命令如下:
$storageAccount = Get-AzStorageAccount -ResourceGroupName 'your resource group'-Name 'your storage name' $ctx = $storageAccount.context Update-AzStorageServiceProperty -ServiceType Blob -DefaultServiceVersion 2021-06-08 -context $ctx
或者通过REST API 修改
PUT https://<your storage account name>.blob.core.chinacloudapi.cn/?restype=service&comp=properties& <SAS Token, 通过门户生成SAS Token>
Request Body 中内容为:
<?xml version="1.0" encoding="utf-8"?> <StorageServiceProperties> <DefaultServiceVersion>2021-06-08</DefaultServiceVersion> </StorageServiceProperties>
请求发送后的截图:
修改完成后,再次查看同一个MP4的播放返回,发现x-ms-version的值已经变为设置的2021-06-08。
参考资料
Azure 存储服务的版本控制:https://learn.microsoft.com/zh-cn/rest/api/storageservices/versioning-for-the-azure-storage-services
Update-AzStorageServiceProperty: https://learn.microsoft.com/en-us/powershell/module/az.storage/update-azstorageserviceproperty?view=azps-9.2.0&viewFallbackFrom=azps-4.6.1
Set Blob Service Properties:https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-service-properties
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!