|
|
51CTO旗下网站
|
|
移动端

3.3.7 服务默认版本问题探讨

《Microsoft Azure 管理与开发(下册)平台服务PaaS》本书由世纪互联蓝云Microsoft Azure 开发技术支持团队的资深工程师们编写,主要阐述MicrosoftAzure PaaS 服务的开发应用,涉及计算服务、集成认证服务、数据存储服务、大数据服务等方面的内容。本节为大家介绍服务默认版本问题探讨。

作者:世纪互联蓝云公司来源:电子工业出版社|2018-07-13 12:29

3.3.7 服务默认版本问题探讨

在上一章中提到存储服务的可用版本。在使用存储客户端库时,此类方法在底层都依赖了某一版本的REST 的接口,这会保障客户端发起的请求按照指定的服务版本进行响应。但在某些情况下,比如通过浏览器匿名请求文件时,无法指定使用的存储服务版本,那么存储服务是按照那个版本进行响应呢? 事实上, 存储服务会基于服务端的DefaultServiceVersion 来响应此类请求,一般为了保持良好的兼容性,DefaultServiceVersion的默认值为2009-09-19,如图3.3.7-1 所示。

由于DefaultServiceVersion 的默认值为较低的版本,这会导致一些应用场景下产生非预期的需求。下列是几个典型的场景案例。

1. 通过浏览器访问Blob 音频、视频文件不支持点播

(1) 原因分析。

是否支持点播,取决于在请求Blob 文件的response 里面是否包含accept-ranges 这个头部属性。而这个属性是在2011-08-18 存储服务版本中加入的特性。当通过浏览器请求此类文件时,由于服务端按照DefaultServiceVersion 进行响应,导致不支持点播,即在任意时间点播放。

(2) 解决方案:

可以下载工具https://deVStorage.blob.core.chinacloudapi.cn/tools/AzureBlobUtility.zip或使用客户端存储库来将DefaultServiceVersion 的默认值修改为2011-08-18 或更高的版本。

2. Linux 系统中使用wget 命令下载Blob 文件时,无法进行续传下载

(1) 原因分析:

与上述类似,wget 默认发起的请求为设定x-ms-version,由于服务端按照DefaultServiceVersion 进行响应,导致response 里面不包含accept-ranges 这个头部属性,无法实现断点续传。

(2) 通过加参数--header "x-ms-version: 2015-04-05",指定存储服务版本。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

活学活用 Ubuntu Server

活学活用 Ubuntu Server

实战直通车
共35章 | UbuntuServer

216人订阅学习

Java EE速成指南

Java EE速成指南

掌握Java核心
共30章 | 51CTO王波

83人订阅学习

Mysql DBA修炼之路

Mysql DBA修炼之路

MySQL入门到高阶
共24章 | 武凤涛

468人订阅学习

读 书 +更多

敏捷Acegi、CAS:构建安全的Java系统

本书是关于Acegi、CAS的权威教程,是Java/Java EE安全性开发者的必备参考书。无论是Java EE安全性编程模型的背景和基础知识,还是Acegi、CA...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客