我正在尝试使用 postman 获取放置在 Azure blob 存储中的 html 页面。默认的 blob 存储访问已设置为私有,因此我必须将标头部分中的“共享密钥”、“x-ms-version”和“x-ms-date”发送给授权。
这是Postman中请求的屏幕截图。
当我单击发送按钮时,我收到一条错误消息,指出“请求中的日期标头不正确”。
有什么想法可以解决这个问题吗?
更新更正日期格式
我更正了“x-ms-date”格式,现在它抛出一个错误,指出身份验证信息的格式不正确
这里是postman的授权部分
感谢您的帮助。
请查看文档。
您需要指定两个标头才能正确请求:
Authorization
和x-ms-date
标头。
x-ms-date
标题的正确格式是Fri, 26 Jun 2015 23:39:12 GMT
。
您的
Authorization
标头似乎无效。
尝试重新生成您的 SAS 密钥并再次测试您的请求。
据我理解正确,那么您只有 15 分钟的时间提出请求。
来自文档:
存储服务确保请求到达服务时不超过 15 分钟。这可以防止某些安全攻击,包括重放攻击。当此检查失败时,服务器返回响应代码 403(禁止)。
格式为
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
。
x-ms-date 标头必须按以下格式指定:Fri, 26 Jun 2015 23:39:12 GMT。
请使用此格式再次尝试您的请求。
就我而言,我使用的 UTC 格式是错误的。 我改成了
DateTime.UtcNow.ToString("R")
。以前是
((DateTime.UtcNow).ToString("ddd, dd MMM yyyy hh:mm:ss ") + "GMT" ))