c# - SharedAccessExpiryTime 的最大限制是 60 分钟吗?

标签 c# azure azure-storage

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

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

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

Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.

类似地,如果我尝试设置它 DateTime.UtcNow.AddMinutes(61) 我会得到相同的异常。任何小于或等于 60 分钟的时间都可以。

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

最佳答案

正如我在 this answer 中指出的那样:从 2012 年 Spring 版本开始,取消了 1 小时的限制。 MSDN 文章是 here 。目前,您需要从 github here 自行提取并构建 v1.7.1 库(假设您使用的是 .net)。 ,因为它尚未作为最新 SDK+工具的一部分发布。该版本的库将使用2012-02-12协议(protocol)版本。

关于c# - SharedAccessExpiryTime 的最大限制是 60 分钟吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12268320/

相关文章:

带边界的 C# HTTP POST

azure - 在 Azure 自动化中使用 Powershell 从 Azure 文件共享读取文件时清空文件输出

c# - Azure 服务总线队列 - 如何防止 IHostedService 立即处理队列消息

azure - 增加 Azure 数据磁盘大小

c# - Entity Framework Core : Npgsql. PostgresException: 23505: 重复键值违反唯一约束

c# - 将一个进程对象的标准输出重定向到另一个进程对象的标准输入

c# - 有没有办法直接从 C# 应用程序将文件写入 Azure Blob 存储?

azure - 在azure中分配给资源创建者的角色是什么

c# - Azure 服务总线重试选项不起作用 (v5.2.0)

.net - 记录器实现中的 CloudQueue.BeginAddMessage