public async Task BlobVersionSas_AllPermissions() { // Arrange await using DisposingContainer test = await GetTestContainerAsync(); string blobName = GetNewBlobName(); AppendBlobClient blob = InstrumentClient(test.Container.GetAppendBlobClient(blobName)); Response <BlobContentInfo> createResponse = await blob.CreateAsync(); IDictionary <string, string> metadata = BuildMetadata(); Response <BlobInfo> metadataResponse = await blob.SetMetadataAsync(metadata); BlobSasBuilder blobSasBuilder = new BlobSasBuilder() { ExpiresOn = Recording.UtcNow.AddDays(1), BlobContainerName = test.Container.Name, BlobName = blobName, BlobVersionId = createResponse.Value.VersionId }; blobSasBuilder.SetPermissions(BlobVersionSasPermissions.All); BlobUriBuilder blobUriBuilder = new BlobUriBuilder(blob.Uri) { VersionId = createResponse.Value.VersionId, Sas = blobSasBuilder.ToSasQueryParameters(GetNewSharedKeyCredentials()) }; // Act AppendBlobClient sasBlobClient = InstrumentClient(new AppendBlobClient(blobUriBuilder.ToUri(), GetOptions())); await sasBlobClient.DeleteAsync(); }
public async Task BlobVersionIdentitySas_AllPermissions() { // Arrange BlobServiceClient oauthService = GetServiceClient_OauthAccount(); string containerName = GetNewContainerName(); string blobName = GetNewBlobName(); await using DisposingContainer test = await GetTestContainerAsync(containerName : containerName, service : oauthService); Response <UserDelegationKey> userDelegationKey = await oauthService.GetUserDelegationKeyAsync( startsOn : null, expiresOn : Recording.UtcNow.AddHours(1)); AppendBlobClient blob = InstrumentClient(test.Container.GetAppendBlobClient(blobName)); Response <BlobContentInfo> createResponse = await blob.CreateAsync(); IDictionary <string, string> metadata = BuildMetadata(); Response <BlobInfo> metadataResponse = await blob.SetMetadataAsync(metadata); BlobSasBuilder blobSasBuilder = new BlobSasBuilder() { ExpiresOn = Recording.UtcNow.AddDays(1), BlobContainerName = test.Container.Name, BlobName = blobName, BlobVersionId = createResponse.Value.VersionId }; blobSasBuilder.SetPermissions(BlobVersionSasPermissions.All); BlobUriBuilder blobUriBuilder = new BlobUriBuilder(blob.Uri) { VersionId = createResponse.Value.VersionId, Sas = blobSasBuilder.ToSasQueryParameters(userDelegationKey.Value, oauthService.AccountName) }; // Act AppendBlobClient sasBlobClient = InstrumentClient(new AppendBlobClient(blobUriBuilder.ToUri(), GetOptions())); await sasBlobClient.DeleteAsync(); }