CloudBlobContainer.ListBlobsSegmented Method (Int32, ResultContinuation, BlobRequestOptions) |
See Also Example |
Returns a result segment containing a collection of blob items in the container. Use this overload when you want to control the maximum number of results returned at a time, and when you want to use a continuation token to determine whether there are more results to return from the service after the current page completes. Namespace: Microsoft.WindowsAzure.StorageClient
Assembly: Microsoft.WindowsAzure.StorageClient (in Microsoft.WindowsAzure.StorageClient.dll)
Usage
Visual Basic |
---|
Dim instance As CloudBlobContainer Dim maxResults As Integer Dim continuationToken As ResultContinuation Dim options As BlobRequestOptions Dim returnValue As ResultSegment(Of IListBlobItem) returnValue = instance.ListBlobsSegmented(maxResults, continuationToken, options) |
Syntax
Visual Basic |
---|
Public Function ListBlobsSegmented ( _ maxResults As Integer, _ continuationToken As ResultContinuation, _ options As BlobRequestOptions _ ) As ResultSegment(Of IListBlobItem) |
C# |
---|
public ResultSegment<IListBlobItem> ListBlobsSegmented ( int maxResults, ResultContinuation continuationToken, BlobRequestOptions options ) |
C++ |
---|
public: ResultSegment<IListBlobItem^>^ ListBlobsSegmented ( int maxResults, ResultContinuation^ continuationToken, BlobRequestOptions^ options ) |
J# |
---|
JScript |
---|
Parameters
- maxResults
Type: System.Int32
A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the per-operation limit of 5000. If this value is zero, the maximum possible number of results will be returned, up to 5000.
- continuationToken
Type: Microsoft.WindowsAzure.StorageClient.ResultContinuation
A continuation token returned by a previous listing operation.
- options
Type: Microsoft.WindowsAzure.StorageClient.BlobRequestOptions
An object that specifies any additional options for the request.
Return Value
Type: Microsoft.WindowsAzure.StorageClient.ResultSegment A result segment containing objects that implement IListBlobItem.Example
The following code example lists blobs in a container in sets of pages.
C# | Copy Code |
---|---|
static void ListBlobsInContainerInSegments(Uri blobEndpoint, string accountName, string accountKey) { //Create service client for credentialed access to the Blob service. CloudBlobClient blobClient = new CloudBlobClient(blobEndpoint, new StorageCredentialsAccountAndKey(accountName, accountKey)); //Get a reference to a container that contains lots of blobs. CloudBlobContainer container = blobClient.GetContainerReference("lotsofblobs"); //Return blobs using a flat listing. BlobRequestOptions options = new BlobRequestOptions(); options.UseFlatBlobListing = true; //This first operation will return up to 5000 blobs. ResultSegment<IListBlobItem> resultSegment = container.ListBlobsSegmented(options); foreach (var blobItem in resultSegment.Results) { Console.WriteLine(blobItem.Uri); } ResultContinuation continuationToken = resultSegment.ContinuationToken; //Check whether there are more results and list them in pages of 1000. while (continuationToken != null) { resultSegment = container.ListBlobsSegmented(1000, continuationToken, options); foreach (var blobItem in resultSegment.Results) { Console.WriteLine(blobItem.Uri); } continuationToken = resultSegment.ContinuationToken; } } |
Remarks
The ListBlobsSegmented method begins an operation to list blobs in pages. To specify the page size to return, pass in a non-zero value for the maxResults parameter. Passing in zero for the maxResults parameter returns either the maximum number of results available, or the per-operation limit of 5000 results.
If you have specified a page size, you can check the HasMoreResults property to check whether the page is complete. For example, if you have specified a page size of 10,000, a value which exceeds the per-operation limit, HasMoreResults will return true, indicating that the page is not complete. Note that if you have not specified a page size, HasMoreResults will always be false.
If you have not specified a page size, or the value of maxResults is zero, then check the value of the ContinuationToken property to determine whether there are more results to return. The continuation token is non-null as long as there are more results to return from the service.
Call the GetNext method to return the next segment of results from the service.
The objects returned by the listing depend on the type of listing that is being performed. If the UseFlatBlobListing property is set to true, the listing will return an enumerable collection of CloudBlob objects. If UseFlatBlobListing is set to false (the default value), the listing may return a collection containing CloudBlob objects and CloudBlobDirectory objects. The latter case provides a convenience for subsequent enumerations over a virtual blob hierarchy.