问题描述

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

问题解答

因为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://<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。

  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 存储服务】MP4视频放在Azure的Blob里面,用生成URL在浏览器中打开之后,视频可以正常播放却无法拖拽视频的进度的更多相关文章

  1. 【Azure 存储服务】代码版 Azure Storage Blob 生成 SAS (Shared Access Signature: 共享访问签名)

    问题描述 在使用Azure存储服务,为了有效的保护Storage的Access Keys.可以使用另一种授权方式访问资源(Shared Access Signature: 共享访问签名), 它的好处可 ...

  2. 【Azure 存储服务】Python模块(azure.cosmosdb.table)直接对表存储(Storage Account Table)做操作示例

    什么是表存储 Azure 表存储是一项用于在云中存储结构化 NoSQL 数据的服务,通过无结构化的设计提供键/属性存储. 因为表存储无固定的数据结构要求,因此可以很容易地随着应用程序需求的发展使数据适 ...

  3. 玩转Windows Azure存储服务——网盘

    存储服务是除了计算服务之外最重要的云服务之一.说到云存储,大家可以想到很多产品,例如:AWS S3,Google Drive,百度云盘...而在Windows Azure中,存储服务却是在默默无闻的工 ...

  4. 解读 Windows Azure 存储服务的账单 – 带宽、事务数量,以及容量

    经常有人询问我们,如何估算 Windows Azure 存储服务的成本,以便了解如何更好地构建一个经济有效的应用程序.本文我们将从带宽.事务数量,以及容量这三种存储成本的角度探讨这一问题. 在使用 W ...

  5. 【Azure 存储服务】.NET7.0 示例代码之上传大文件到Azure Storage Blob

    问题描述 在使用Azure的存储服务时候,如果上传的文件大于了100MB, 1GB的情况下,如何上传呢? 问题解答 使用Azure存储服务时,如果要上传文件到Azure Blob,有很多种工具可以实现 ...

  6. 玩转Windows Azure存储服务——高级存储

    在上一篇我们把Windows Azure的存储服务用作网盘,本篇我们继续挖掘Windows Azure的存储服务——高级存储.高级存储自然要比普通存储高大上的,因为高级存储是SSD存储!其吞吐量和IO ...

  7. 【Azure 存储服务】Java Azure Storage SDK V12使用Endpoint连接Blob Service遇见 The Azure Storage endpoint url is malformed

    问题描述 使用Azure Storage Account的共享访问签名(Share Access Signature) 生成的终结点,连接时遇见  The Azure Storage endpoint ...

  8. 【Azure 存储服务】如何把开启NFS 3.0协议的Azure Blob挂载在Linux VM中呢?(NFS: Network File System 网络文件系统)

    问题描述 如何把开启NFS协议的Azure Blob挂载到Linux虚拟机中呢? [答案]:可以使用 NFS 3.0 协议从基于 Linux 的 Azure 虚拟机 (VM) 或在本地运行的 Linu ...

  9. 【Azure 存储服务】Hadoop集群中使用ADLS(Azure Data Lake Storage)过程中遇见执行PUT操作报错

    问题描述 在Hadoop集中中,使用ADLS 作为数据源,在执行PUT操作(上传文件到ADLS中),遇见 400错误[put: Operation failed: "An HTTP head ...

  10. 【Azure 云服务】如何从Azure Cloud Service中获取项目的部署文件

    问题描述 在历史已经部署的云服务(Azure Cloud Service)中,如何获取到项目在很久以前的部署包文件呢? 解决办法 1)如果部署云服务是通过门户上传部署包到存储账号中,则可以直接从存储账 ...

随机推荐

  1. [知乎]2019-nCov的致死率问题

    https://www.zhihu.com/question/369630554/answer/998649507 知乎 dr.李的文章 跟自己一开始的理解很相似.. 个人也认为死亡率会高于2% 武汉 ...

  2. js递归根据父级id获取所有的子节点

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. Vue双向数据绑定原理-中

    defineProperty方法 defineProperty除了可以动态修改/新增对象的属性以外, 还可以在修改/新增的时候给该属性添加get/set方法, 从而实现数据劫持. defineProp ...

  4. 第二届数字化经济与管理科学国际学术会议(CDEMS 2024)

    [经济&管理|录用率高]第二届数字化经济与管理科学国际学术会议(CDEMS 2024) 2024 2nd International Conference on Digital Economy ...

  5. Flask 框架:运用Ajax实现数据交互

    使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载刷新整个页面,这使得程序能够更快地回应用户的操作,如下笔记将简单介绍使用AJAX如何实现前后端数据通信. 前后端发送字符串 前 ...

  6. Linux 进程卡住了怎么办?

    在我们使用 Linux 系统时,如果网络或者磁盘等 I/O 出问题,会发现进程卡住了,即使用 kill -9 也无法杀掉进程,很多常用的调试工具,比如 strace, pstack 等也都失灵了,是怎 ...

  7. delphi TThread.WaitFor 用法

    在 Delphi 中,TThread.WaitFor 方法用于等待一个线程完成执行.当你创建一个线程并希望主线程(或其他线程)等待这个线程结束时,你可以使用这个方法. 以下是 TThread.Wait ...

  8. Adoquery 简单的事务 编程 超级棒

    1.记得 有一次 看 c#视频教程,发现了一个简单事务 处理的绝佳方法,就是 adoquery 其实是可以 同时执行多条 SQL 语句的, 当其中一条 SQL 语句失败了,那么其余 SQL 语句也会失 ...

  9. Flink CDC写入数据到kafka几种格式

    Flink CDC写入kafka几种常见的数据格式,其中包括upsert-kafka写入后正常的json格式,debezium-json格式以及changelog-json格式. upsert-kaf ...

  10. burpsuit+adb+逍遥模拟器

    安卓7之后,单纯的将burpsuit的证书导出手动安装到模拟器中已经不行了,app可以只信任指定证书和系统内置的证书,后续用户安装的证书是不生效的,只能想办法装到系统内部 需要将证书通过openssl ...