public async Task <Uri> GetQueueSas(string name, StorageType storageType, QueueSasPermissions permissions, TimeSpan?duration) { var queue = await GetQueueClient(name, storageType) ?? throw new Exception($"unable to queue object, no such queue: {name}"); var sasaBuilder = new QueueSasBuilder(permissions, DateTimeOffset.UtcNow + (duration ?? DEFAULT_DURATION)); return(queue.GenerateSasUri(sasaBuilder)); }
/// <summary> /// Create a permissions string to provide /// <see cref="QueueSasBuilder.Permissions"/>. /// </summary> /// <returns>A permissions string.</returns> internal static string ToPermissionsString(this QueueSasPermissions permissions) { var sb = new StringBuilder(); if ((permissions & QueueSasPermissions.Read) == QueueSasPermissions.Read) { sb.Append(Constants.Sas.Permissions.Read); } if ((permissions & QueueSasPermissions.Add) == QueueSasPermissions.Add) { sb.Append(Constants.Sas.Permissions.Add); } if ((permissions & QueueSasPermissions.Update) == QueueSasPermissions.Update) { sb.Append(Constants.Sas.Permissions.Update); } if ((permissions & QueueSasPermissions.Process) == QueueSasPermissions.Process) { sb.Append(Constants.Sas.Permissions.Process); } return(sb.ToString()); }