/// <summary> /// Create a permissions string to provide /// <see cref="ShareSasBuilder.Permissions"/>. /// </summary> /// <returns>A permissions string.</returns> internal static string ToPermissionsString(this ShareSasPermissions permissions) { var sb = new StringBuilder(); if ((permissions & ShareSasPermissions.Read) == ShareSasPermissions.Read) { sb.Append(Constants.Sas.Permissions.Read); } if ((permissions & ShareSasPermissions.Create) == ShareSasPermissions.Create) { sb.Append(Constants.Sas.Permissions.Create); } if ((permissions & ShareSasPermissions.Write) == ShareSasPermissions.Write) { sb.Append(Constants.Sas.Permissions.Write); } if ((permissions & ShareSasPermissions.Delete) == ShareSasPermissions.Delete) { sb.Append(Constants.Sas.Permissions.Delete); } if ((permissions & ShareSasPermissions.List) == ShareSasPermissions.List) { sb.Append(Constants.Sas.Permissions.List); } return(sb.ToString()); }
public async Task <Uri> CreateShareSasUriAsync(string shareName, string directoryPath, ShareSasPermissions permissions, DateTimeOffset expiresOn) { if (string.IsNullOrWhiteSpace(shareName)) { throw new ArgumentException($"'{nameof(shareName)}' cannot be null or whitespace.", nameof(shareName)); } if (string.IsNullOrWhiteSpace(directoryPath)) { throw new ArgumentException($"'{nameof(directoryPath)}' cannot be null or whitespace.", nameof(directoryPath)); } var client = await CreateShareClientAsync(shareName, useSharedKey : true) .ConfigureAwait(false); return(client.GenerateSasUri(permissions, expiresOn)); }