Azure blob GET 请求授权标头“x-ms-date”字段问题

问题描述 投票:0回答:4

我正在尝试使用 postman 获取放置在 Azure blob 存储中的 html 页面。默认的 blob 存储访问已设置为私有,因此我必须将标头部分中的“共享密钥”、“x-ms-version”和“x-ms-date”发送给授权。

这是Postman中请求的屏幕截图。

当我单击发送按钮时,我收到一条错误消息,指出“请求中的日期标头不正确”。

有什么想法可以解决这个问题吗?

更新更正日期格式

我更正了“x-ms-date”格式,现在它抛出一个错误,指出身份验证信息的格式不正确

这里是postman的授权部分

感谢您的帮助。

azure get postman azure-blob-storage
4个回答
5
投票

请查看文档

您需要指定两个标头才能正确请求:

Authorization
x-ms-date
标头。

x-ms-date
标题的正确格式是
Fri, 26 Jun 2015 23:39:12 GMT

您的

Authorization
标头似乎无效。 尝试重新生成您的 SAS 密钥并再次测试您的请求。

据我理解正确,那么您只有 15 分钟的时间提出请求。

来自文档:

存储服务确保请求到达服务时不超过 15 分钟。这可以防止某些安全攻击,包括重放攻击。当此检查失败时,服务器返回响应代码 403(禁止)。


3
投票

格式为

Fri, 26 Jun 2015 23:39:12 GMT
。在Python中,这可以通过

获得
import datetime
date = datetime.datetime.utcnow().strftime('%a, %d %b %Y %H:%M:%S GMT')

假设

locale.en_US


1
投票

x-ms-date 标头必须按以下格式指定:Fri, 26 Jun 2015 23:39:12 GMT。

请使用此格式再次尝试您的请求。


0
投票

就我而言,我使用的 UTC 格式是错误的。 我改成了

DateTime.UtcNow.ToString("R")
。以前是

((DateTime.UtcNow).ToString("ddd, dd MMM yyyy hh:mm:ss ") + "GMT" ))
© www.soinside.com 2019 - 2024. All rights reserved.