【Azure 存储服务】MP4视频放在Azure的Blob里面,用生成URL在浏览器中打开之后,视频可以正常播放却无法拖拽视频的进度

问题描述

把MP4视频放在Azure的Blob里面,用生成URL在浏览器中打开之后,视频可以正常播放却无法拖拽视频的进度,这是什么情况呢?

 

问题解答

因为MP4上传到Azure Blob后,根据公开的权限,可以直接通过Storage Blob URL +/ Blob Container + / Blob Name 的URL形式访问。 只是在返回的Response Header中,我们发现从Blob中返回的部分Hader中:

- Last-Modified: Mon, 12 Dec 2022 11:53:58 GMT

- Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

- x-ms-blob-type: BlockBlob

- x-ms-lease-status: unlocked

- x-ms-request-id: b60d98a3-d01e-0003-0522-0e045b000000

- x-ms-version: 2009-09-19** **

发现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。

Last-Modified: Mon, 12 Dec 2022 11:53:58 GMT

- Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

- x-ms-blob-type: BlockBlob

- x-ms-error-code: ConditionNotMet

- x-ms-lease-status: unlocked

- x-ms-request-id: 83858a38-801e-0031-5e26-0e042c000000

- 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

     

 

正在加载评论...