Obtenir la liste du blob dans l’application winRt

J’aimerais lister les blobs dans un conteneur. Pour les applications de bureau, Azure Storage SDK fournit la méthode suivante:

CloudBlobContainer container = blobClient.GetContainerReference("myBlob"); container.ListBlobs(); 

Cependant, en utilisant la bibliothèque WinRT, la méthode est absente (probablement en raison de sa nature bloquante). Que devrais-je utiliser à la place?

Vous devez utiliser la fonction ListBlobsSegmentedAsync sur le conteneur blob pour extraire la liste des blobs. Voir le code ci-dessous par exemple:

  CloudStorageAccount account = new CloudStorageAccount(new StorageCredentials("accountname", "accountkey"), true); var client = account.CreateCloudBlobClient(); var container = client.GetContainerReference("containername"); BlobContinuationToken continuationToken = null; ssortingng prefix = null; bool useFlatBlobListing = true; BlobListingDetails blobListingDetails = BlobListingDetails.All; int maxBlobsPerRequest = 10; List blobs = new List(); do { var listingResult = await container.ListBlobsSegmentedAsync(prefix, useFlatBlobListing, blobListingDetails, maxBlobsPerRequest, continuationToken, null, null); continuationToken = listingResult.ContinuationToken; blobs.AddRange(listingResult.Results); } while (continuationToken != null); 

Code modifié pour prendre en charge Azure 2.2

 CloudStorageAccount account = new CloudStorageAccount(new StorageCredentials("accountname", "accountkey"), true); var client = account.CreateCloudBlobClient(); var container = client.GetContainerReference("containername"); BlobContinuationToken continuationToken = null; ssortingng prefix = null; bool useFlatBlobListing = true; BlobListingDetails blobListingDetails = BlobListingDetails.All; int maxBlobsPerRequest = 10; List blobs = new List(); do { var listingResult = await container.ListBlobsSegmentedAsync(prefix, useFlatBlobListing, blobListingDetails, maxBlobsPerRequest, continuationToken, null, null); continuationToken = **listingResult.Result.ContinuationToken;** blobs.AddRange(**listingResult.Result.Results**); } while (continuationToken != null);