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