public static AzureStorageBlob GetAzureStorageBlob(BlobTagItem blobTagItem, BlobContainerClient track2container, AzureStorageContext context, string continuationToken = null, BlobClientOptions options = null) { BlobBaseClient blobClient = Util.GetTrack2BlobClient(track2container, blobTagItem.BlobName, context, options: options); AzureStorageBlob outputblob = new AzureStorageBlob(blobClient, context, options); if (continuationToken != null) { BlobContinuationToken token = new BlobContinuationToken(); token.NextMarker = continuationToken; outputblob.ContinuationToken = token; } return(outputblob); }
public async Task FindBlobsByTagAsync_AccountSas(AccountSasPermissions accountSasPermissions) { // Arrange BlobServiceClient service = GetServiceClient_SharedKey(); await using DisposingContainer test = await GetTestContainerAsync(); string blobName = GetNewBlobName(); AppendBlobClient appendBlob = InstrumentClient(test.Container.GetAppendBlobClient(blobName)); string tagKey = "myTagKey"; string tagValue = "myTagValue"; Dictionary <string, string> tags = new Dictionary <string, string> { { tagKey, tagValue } }; AppendBlobCreateOptions options = new AppendBlobCreateOptions { Tags = tags }; await appendBlob.CreateAsync(options); string expression = $"\"{tagKey}\"='{tagValue}'"; // It takes a few seconds for Filter Blobs to pick up new changes await Delay(2000); // Act SasQueryParameters sasQueryParameters = GetNewAccountSasCredentials(accountSasPermissions: accountSasPermissions); BlobServiceClient sasServiceClient = new BlobServiceClient(new Uri($"{service.Uri}?{sasQueryParameters}"), GetOptions()); List <BlobTagItem> blobs = new List <BlobTagItem>(); await foreach (Page <BlobTagItem> page in sasServiceClient.FindBlobsByTagsAsync(expression).AsPages()) { blobs.AddRange(page.Values); } // Assert BlobTagItem filterBlob = blobs.Where(r => r.BlobName == blobName).FirstOrDefault(); Assert.IsNotNull(filterBlob); }