public async Task SetPermissions_Filesystem(DataLakeFileSystemSasPermissions permissions) { // Arrange await using DisposingFileSystem test = await GetNewFileSystem(); DataLakeSasBuilder dataLakeSasBuilder = new DataLakeSasBuilder { StartsOn = Recording.UtcNow.AddHours(-1), ExpiresOn = Recording.UtcNow.AddHours(1), FileSystemName = test.FileSystem.Name }; dataLakeSasBuilder.SetPermissions(permissions); StorageSharedKeyCredential sharedKeyCredential = new StorageSharedKeyCredential(TestConfigHierarchicalNamespace.AccountName, TestConfigHierarchicalNamespace.AccountKey); DataLakeUriBuilder dataLakeUriBuilder = new DataLakeUriBuilder(test.FileSystem.Uri) { Sas = dataLakeSasBuilder.ToSasQueryParameters(sharedKeyCredential) }; DataLakeFileSystemClient sasFileSystemClient = InstrumentClient(new DataLakeFileSystemClient(dataLakeUriBuilder.ToUri(), GetOptions())); // Act await foreach (PathItem pathItem in sasFileSystemClient.GetPathsAsync()) { // Just make sure the call succeeds. } }
/// <summary> /// Create a permissions string to provide /// <see cref="DataLakeSasBuilder.Permissions"/>. /// </summary> /// <returns>A permissions string.</returns> internal static string ToPermissionsString(this DataLakeFileSystemSasPermissions permissions) { var sb = new StringBuilder(); if ((permissions & DataLakeFileSystemSasPermissions.Read) == DataLakeFileSystemSasPermissions.Read) { sb.Append(Constants.Sas.Permissions.Read); } if ((permissions & DataLakeFileSystemSasPermissions.Add) == DataLakeFileSystemSasPermissions.Add) { sb.Append(Constants.Sas.Permissions.Add); } if ((permissions & DataLakeFileSystemSasPermissions.Create) == DataLakeFileSystemSasPermissions.Create) { sb.Append(Constants.Sas.Permissions.Create); } if ((permissions & DataLakeFileSystemSasPermissions.Write) == DataLakeFileSystemSasPermissions.Write) { sb.Append(Constants.Sas.Permissions.Write); } if ((permissions & DataLakeFileSystemSasPermissions.Delete) == DataLakeFileSystemSasPermissions.Delete) { sb.Append(Constants.Sas.Permissions.Delete); } if ((permissions & DataLakeFileSystemSasPermissions.List) == DataLakeFileSystemSasPermissions.List) { sb.Append(Constants.Sas.Permissions.List); } return(sb.ToString()); }
/// <summary> /// Sets the permissions for a file system SAS. /// </summary> /// <param name="permissions"> /// <see cref="DataLakeFileSystemSasPermissions"/> containing the allowed permissions. /// </param> public void SetPermissions(DataLakeFileSystemSasPermissions permissions) { Permissions = permissions.ToPermissionsString(); }
/// <summary> /// Initializes a new instance of the <see cref="DataLakeSasBuilder"/> /// class to create a Blob Service Sas. /// </summary> /// <param name="permissions"> /// The time at which the shared access signature becomes invalid. /// This field must be omitted if it has been specified in an /// associated stored access policy. /// </param> /// <param name="expiresOn"> /// The time at which the shared access signature becomes invalid. /// This field must be omitted if it has been specified in an /// associated stored access policy. /// </param> public DataLakeSasBuilder(DataLakeFileSystemSasPermissions permissions, DateTimeOffset expiresOn) { ExpiresOn = expiresOn; SetPermissions(permissions); }