为我的azure存储帐户生成共享访问签名(SAS)时可以指定队列名称吗

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

这里是描述如何构建服务 SAS的文档。

文档上说,你可以指定一个表名,这样sas就只能访问那个特定的表。

我可以对队列做同样的事情,这样SAS就只能访问那个特定的队列吗?

azure azure-storage-queues
2个回答
0
投票

我可以对队列做同样的事情吗,这样SAS只能访问它 具体队列?

当然可以!看看下面的代码:

    static void GenerateSasForQueue()
    {
        var cred = new StorageCredentials(accountName, accountKey);
        var account = new CloudStorageAccount(cred, true);
        var client = account.CreateCloudQueueClient();
        var queue = client.GetQueueReference("queue-name");
        var sasPolicy = new SharedAccessQueuePolicy()
        {
            SharedAccessStartTime = DateTime.UtcNow.AddMinutes(-15),
            SharedAccessExpiryTime = DateTime.UtcNow.AddHours(2),
            Permissions = SharedAccessQueuePermissions.Add | SharedAccessQueuePermissions.Read |
            SharedAccessQueuePermissions.Update | SharedAccessQueuePermissions.ProcessMessages
        };
        var sasToken = queue.GetSharedAccessSignature(sasPolicy);
        var sasUrl = string.Format("{0}{1}", queue.Uri.AbsoluteUri, sasToken);
    }

此代码将在您的存储帐户中名为

queue-name
的队列上生成 SAS 令牌,所有权限自 SAS 创建之日起 2 小时内有效。


0
投票

要生成特定于队列的 SAS 令牌,请转到存储浏览器(因此,不是“共享访问签名”菜单项)。然后选择队列,然后从特定队列的三个点中您可以开始生成 SAS。像平常一样给它指定到期时间等。 生成的 SAS 令牌仅对特定队列有效。

© www.soinside.com 2019 - 2024. All rights reserved.