如何获取Azure Blob Storage中特定版本的Blob URL
获取Azure Blob Storage特定版本Blob的URL方法
直接在Blob基础URL后追加versionId查询参数会提示无效,核心原因是未携带有效授权信息。要访问特定版本的Blob,需结合共享访问签名(SAS)或Azure AD授权生成有效URL,具体方法如下:
方法1:通过共享访问签名(SAS)生成带版本的URL
SAS是访问Blob资源的常用授权方式,生成时需指定目标版本ID,确保权限覆盖该版本:
- 使用Azure CLI生成的示例命令:
执行后得到的SAS令牌,与Blob基础URL拼接后,就是可直接访问特定版本的有效URL。az storage blob generate-sas --account-name <存储账户名> --container-name <容器名> --name <Blob名称> --version-id <目标版本ID> --permissions r --expiry <过期时间,比如2024-12-31T23:59:59Z> --output tsv - 也可通过Azure Portal操作:进入Blob的「版本历史」页面,选中目标版本,点击「生成SAS」,按需配置权限和过期时间,生成后即可获取带版本ID的完整URL。
方法2:使用Azure AD授权访问特定版本
通过Azure AD获取Blob资源的访问令牌后,构造包含versionId参数的URL,并在请求头中携带Authorization: Bearer <令牌>即可访问。例如:
https://<存储账户名>.blob.core.windows.net/<容器名>/<Blob名称>?versionId=<目标版本ID>
请求时需确保令牌拥有该Blob版本的读取(或对应操作)权限。
注意:未授权的情况下直接追加
versionId参数会被判定无效,必须结合SAS或Azure AD授权才能让该参数生效。
内容的提问来源于stack exchange,提问作者Knowledge Apps
相关产品推荐
相关产品推荐

