我正在尝试通过下面的代码为容器生成共享访问密钥

string sas = azureContainer.GetSharedAccessSignature (new SharedAccessPolicy ()
{
    SharedAccessStartTime =  DateTime.UtcNow,
    SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1),
    Permissions = SharedAccessPermissions.Write | SharedAccessPermissions.Read
});


在这种情况下,共享访问签名可以正常工作。客户端成功将文件上传到容器。但是,如果我将时间设置为超过1小时(例如2),则尝试在客户端上传文件时出现异常


  服务器无法验证请求。确保值
  授权标头的格式正确,包括签名。


同样,如果我尝试将其设置为DateTime.UtcNow.AddMinutes(61),则会遇到相同的异常。任何少于或等于60分钟的时间都可以正常工作。

我的问题:共享访问签名的最长时间是60分钟吗?我没有在任何文档中找到任何类似的东西。

最佳答案

实际记录如下:CloudBlob.GetSharedAccessSignature Method (SharedAccessPolicy)


  ...您可以在单个共享访问签名上指定它。在这个
  在这种情况下,签名可能有效的时间间隔被限制为
  一小时。 ...


如果您希望它超过一小时,建议您改用容器级访问策略(也可以撤消)。

10-06 11:06