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

问题描述

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

问题解答

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

  1. Last-Modified: Mon, 12 Dec 2022 11:53:58 GMT
  2. Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
  3. x-ms-blob-type: BlockBlob
  4. x-ms-lease-status: unlocked
  5. x-ms-request-id: b60d98a3-d01e-0003-0522-0e045b000000
  6. 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://.blob.core.chinacloudapi.cn/?restype=service&comp=properties& <SAS Token, 通过门户生成SAS Token>


Request Body 中内容为:

请求发送后的截图: image

修改完成后,再次查看同一个MP4的播放返回,发现x-ms-version的值已经变为设置的2021-06-08。

image

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

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

  3. x-ms-blob-type: BlockBlob

  4. x-ms-error-code: ConditionNotMet

  5. x-ms-lease-status: unlocked

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

  7. 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

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

分类: 【Azure 存储服务】

标签: x-ms-version修改storage account blob MP4