我正在尝试通过下面的代码为容器生成共享访问密钥
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)
...您可以在单个共享访问签名上指定它。在这个
在这种情况下,签名可能有效的时间间隔被限制为
一小时。 ...
如果您希望它超过一小时,建议您改用容器级访问策略(也可以撤消)。