Getting List the blob in winRt application

假装没事ソ 提交于 2019-12-22 18:45:46

问题


I would like to list blobs in a container. For desktop apps, the Azure Storage SDK provides the following method:

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

However, using the WinRT library the method is absent (probably due to its blocking nature). What should I use instead?


回答1:


You would need to use ListBlobsSegmentedAsync function on the blob container to fetch the list of blobs. See the code below for example:

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



回答2:


Code modified to support Azure 2.2

CloudStorageAccount account = new CloudStorageAccount(new StorageCredentials("accountname", "accountkey"), true);
var client = account.CreateCloudBlobClient();
var container = client.GetContainerReference("containername");
BlobContinuationToken continuationToken = null;
string prefix = null;
bool useFlatBlobListing = true;
BlobListingDetails blobListingDetails = BlobListingDetails.All;
int maxBlobsPerRequest = 10;
List<IListBlobItem> blobs = new List<IListBlobItem>();
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);


来源:https://stackoverflow.com/questions/16052813/getting-list-the-blob-in-winrt-application

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!