本文整理汇总了C#中Microsoft.WindowsAzure.Storage.Blob.BlobContinuationToken类的典型用法代码示例。如果您正苦于以下问题:C# BlobContinuationToken类的具体用法?C# BlobContinuationToken怎么用?C# BlobContinuationToken使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
BlobContinuationToken类属于Microsoft.WindowsAzure.Storage.Blob命名空间,在下文中一共展示了BlobContinuationToken类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ListBlobsSegmented
public BlobResultSegment ListBlobsSegmented(string prefix, bool useFlatListing, BlobListingDetails blobListingDetails,
int? maxResults, BlobContinuationToken continuationToken, BlobRequestOptions blobRequestOptions,
OperationContext operationContext)
{
return _client.ListBlobsSegmented(prefix, useFlatListing, blobListingDetails, maxResults, continuationToken,
blobRequestOptions, operationContext);
}
示例2: GetNextHeartbeats
private BlobResultSegment GetNextHeartbeats(CloudBlobDirectory directory, BlobContinuationToken currentToken)
{
const int batchSize = 100;
try
{
return directory.ListBlobsSegmented(useFlatBlobListing: true,
blobListingDetails: BlobListingDetails.None,
maxResults: batchSize,
currentToken: currentToken,
options: null,
operationContext: null);
}
catch (StorageException exception)
{
if (exception.IsNotFound())
{
return null;
}
else
{
throw;
}
}
}
示例3: ListContainersSegmented
private Task<ContainerResultSegment> ListContainersSegmented(string prefix, ContainerListingDetails detailsIncluded, int? maxResults, BlobContinuationToken continuationToken, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken = default(CancellationToken))
{
return AsyncTaskUtil.RunAsyncCancellable<ContainerResultSegment>(
_inner.BeginListContainersSegmented(prefix, detailsIncluded, maxResults, continuationToken, options, operationContext, null, null),
_inner.EndListContainersSegmented,
cancellationToken);
}
示例4: ListBlobsSegmentedAsync
public static IAzureBlobResultSegment ListBlobsSegmentedAsync(
string containerDirectory,
string searchDirectory,
string prefix,
BlobListing blobListing,
BlobListingDetails blobListingDetails,
int? maxResults,
BlobContinuationToken currentToken)
{
if (blobListing == BlobListing.Hierarchical && (blobListingDetails & BlobListingDetails.Snapshots) == BlobListingDetails.Snapshots)
{
throw new ArgumentException("Listing snapshots is only supported in flat mode.");
}
var numberToSkip = DetermineNumberToSkip(currentToken);
var resultSegment = blobListing == BlobListing.Flat
? FindFilesFlattened(containerDirectory, searchDirectory, prefix, maxResults, numberToSkip)
: FindFilesHierarchical(containerDirectory, searchDirectory, prefix, maxResults, numberToSkip);
if ((blobListingDetails & BlobListingDetails.Metadata) == BlobListingDetails.Metadata)
{
foreach (var blob in resultSegment.Results.OfType<StandaloneAzureBlockBlob>())
{
blob.FetchAttributes();
}
}
return resultSegment;
}
示例5: ListBlobsImplAsync
/// <summary>
/// Returns an enumerable collection of the blobs in the container that are retrieved asynchronously.
/// </summary>
/// <param name="blobDirectory">Cloud blob directory.</param>
/// <param name="cloudBlobs">List of cloud blobs.</param>
/// <param name="useFlatBlobListing">Whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory.</param>
/// <param name="blobListingDetails">
/// A <see cref="T:Microsoft.WindowsAzure.Storage.Blob.BlobListingDetails" /> enumeration describing which items to include in the listing.
/// </param>
/// <param name="maxResults">
/// 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 null, the maximum possible number of results will be returned, up to 5000.
/// </param>
/// <param name="continuationToken">Continuation token.</param>
/// <param name="cancellationToken">Cancellation token.</param>
/// <returns>
/// An enumerable collection of objects that implement <see cref="T:Microsoft.WindowsAzure.Storage.Blob.IListBlobItem" /> that are retrieved.
/// </returns>
private static Task<List<IListBlobItem>> ListBlobsImplAsync(
this CloudBlobDirectory blobDirectory,
List<IListBlobItem> cloudBlobs,
bool useFlatBlobListing,
BlobListingDetails blobListingDetails,
int? maxResults,
BlobContinuationToken continuationToken,
CancellationToken cancellationToken = default (CancellationToken))
{
return blobDirectory
.ListBlobsSegmentedAsync(useFlatBlobListing, blobListingDetails, maxResults, continuationToken, cancellationToken)
.Then(result =>
{
cancellationToken.ThrowIfCancellationRequested();
cloudBlobs.AddRange(result.Results);
// Checks whether maxresults entities has been received
if (maxResults.HasValue && cloudBlobs.Count >= maxResults.Value)
{
return TaskHelpers.FromResult(cloudBlobs.Take(maxResults.Value).ToList());
}
// Checks whether enumeration has been completed
if (result.ContinuationToken != null)
{
return ListBlobsImplAsync(blobDirectory, cloudBlobs, useFlatBlobListing, blobListingDetails, maxResults, continuationToken, cancellationToken);
}
return TaskHelpers.FromResult(cloudBlobs);
});
}
示例6: ListBlobsSegmented
private Task<BlobResultSegment> ListBlobsSegmented(string prefix, bool useFlatBlobListing, BlobListingDetails blobListingDetails, int? maxResults, BlobContinuationToken continuationToken, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken = default(CancellationToken))
{
return AsyncTaskUtil.RunAsyncCancellable<BlobResultSegment>(
_inner.BeginListBlobsSegmented(prefix, useFlatBlobListing, blobListingDetails, maxResults, continuationToken, options, operationContext, null, null),
_inner.EndListBlobsSegmented,
cancellationToken);
}
示例7: ListBlobsSegmentedAsync
/// <inheritdoc />
public Task<IStorageBlobResultSegment> ListBlobsSegmentedAsync(string prefix, bool useFlatBlobListing,
BlobListingDetails blobListingDetails, int? maxResults, BlobContinuationToken currentToken,
BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken)
{
Task<BlobResultSegment> sdkTask = _sdk.ListBlobsSegmentedAsync(prefix, useFlatBlobListing,
blobListingDetails, maxResults, currentToken, options, operationContext, cancellationToken);
return ListBlobsSegmentedAsyncCore(sdkTask);
}
示例8: ListBlobsSegmentedAsync
public async Task<IAzureBlobResultSegment> ListBlobsSegmentedAsync(BlobListing blobListing, BlobListingDetails blobListingDetails, int? maxResults, BlobContinuationToken currentToken)
{
return new HostedAzureBlobResultSegment(await _cloudBlobDirectory.ListBlobsSegmentedAsync(
blobListing == BlobListing.Flat,
blobListingDetails,
maxResults,
currentToken,
null,
null));
}
示例9: DetermineNumberToSkip
private static int DetermineNumberToSkip(BlobContinuationToken currentToken)
{
if (currentToken == null)
{
return 0;
}
int numberToSkip;
return Int32.TryParse(currentToken.NextMarker, out numberToSkip) ? numberToSkip : 0;
}
示例10: ListBlobsSegmentedAsync
public Task<IAzureBlobResultSegment> ListBlobsSegmentedAsync(BlobListing blobListing, BlobListingDetails blobListingDetails, int? maxResults, BlobContinuationToken currentToken)
{
return Task.FromResult(StandaloneList.ListBlobsSegmentedAsync(
_containerDirectory,
_directoryPath,
"",
blobListing,
blobListingDetails,
maxResults,
currentToken));
}
示例11: StandaloneAzureBlobResultSegment
public StandaloneAzureBlobResultSegment(IEnumerable<IAzureListBlobItem> results, BlobContinuationToken continuationToken)
{
if (results == null)
{
throw new ArgumentNullException("results");
}
if (continuationToken == null)
{
throw new ArgumentNullException("continuationToken");
}
Results = results;
ContinuationToken = continuationToken;
}
示例12: ListBlobsSegmentedAsync
public Task<IAzureBlobResultSegment> ListBlobsSegmentedAsync(string prefix, BlobListing blobListing, BlobListingDetails blobListingDetails, int? maxResults, BlobContinuationToken currentToken)
{
if (blobListing == BlobListing.Hierarchical && (blobListingDetails & BlobListingDetails.Snapshots) == BlobListingDetails.Snapshots)
{
throw new ArgumentException("Listing snapshots is only supported in flat mode.");
}
var numberToSkip = DetermineNumberToSkip(currentToken);
var resultSegment = blobListing == BlobListing.Flat
? FindFilesFlattened(prefix, maxResults, numberToSkip)
: FindFilesHierarchical(prefix, maxResults, numberToSkip);
return Task.FromResult((IAzureBlobResultSegment) resultSegment);
}
示例13: Serialize
public static string Serialize(BlobContinuationToken token)
{
if (token == null)
{
return null;
}
// Include TargetLocation in serialized form to ensure consistent results for RA-GRS accounts. (Without it,
// each request could see different sides of eventually consisent replication).
// See: http://blogs.msdn.com/b/windowsazurestorage/archive/2013/12/04/ (ignore source line break)
// introducing-read-access-geo-replicated-storage-ra-grs-for-windows-azure-storage.aspx
// Prefix the NextMarker with a single character indicating TargetLocation.
return Serialize(token.TargetLocation) + token.NextMarker;
}
示例14: ListContainers
public IObservable<AsyncCloudBlobContainer> ListContainers(string prefix, ContainerListingDetails detailsIncluded, int? maxResults, BlobRequestOptions options, OperationContext operationContext)
{
return Observable.Create<AsyncCloudBlobContainer>(
async (observer, ct) =>
{
var containerToken = new BlobContinuationToken();
while (containerToken != null)
{
var results = await ListContainersSegmented(prefix, detailsIncluded, maxResults, containerToken, options, operationContext, ct);
foreach (var result in results.Results)
{
observer.OnNext(new AsyncCloudBlobContainer(result));
}
containerToken = results.ContinuationToken;
}
});
}
示例15: ListBlobs
public IObservable<IAsyncListBlobItem> ListBlobs(string prefix, bool useFlatBlobListing, BlobListingDetails blobListingDetails = BlobListingDetails.None, int? maxResults = null, BlobRequestOptions options = null, OperationContext operationContext = null)
{
return Observable.Create<IAsyncListBlobItem>(
async (observer, ct) =>
{
var containerToken = new BlobContinuationToken();
while (containerToken != null)
{
var results = await ListBlobsSegmented(prefix, useFlatBlobListing, blobListingDetails, maxResults, containerToken, options, operationContext, ct);
foreach (var result in results.Results)
{
observer.OnNext(AsyncListBlobItemHelpers.FromIListBlobItem(result));
}
containerToken = results.ContinuationToken;
}
});
}