public virtual Task SetServicePropertiesAsync(ServiceProperties properties, BlobRequestOptions requestOptions, OperationContext operationContext, CancellationToken cancellationToken) { BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(requestOptions, BlobType.Unspecified, this); operationContext = operationContext ?? new OperationContext(); return(Executor.ExecuteAsyncNullReturn( this.SetServicePropertiesImpl(properties, modifiedOptions), modifiedOptions.RetryPolicy, operationContext, cancellationToken)); }
public virtual async Task <ContainerResultSegment> ListContainersSegmentedAsync(string prefix, ContainerListingDetails detailsIncluded, int?maxResults, BlobContinuationToken currentToken, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken) { BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(options, BlobType.Unspecified, this); ResultSegment <CloudBlobContainer> resultSegment = await Executor.ExecuteAsync( this.ListContainersImpl(prefix, detailsIncluded, currentToken, maxResults, modifiedOptions), modifiedOptions.RetryPolicy, operationContext, cancellationToken).ConfigureAwait(false); return(new ContainerResultSegment(resultSegment.Results, (BlobContinuationToken)resultSegment.ContinuationToken)); }
public virtual Task <ServiceStats> GetServiceStatsAsync(BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken) { BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(options, BlobType.Unspecified, this); operationContext = operationContext ?? new OperationContext(); return(Executor.ExecuteAsync( this.GetServiceStatsImpl(modifiedOptions), modifiedOptions.RetryPolicy, operationContext, cancellationToken)); }
public virtual Task <ICloudBlob> GetBlobReferenceFromServerAsync(StorageUri blobUri, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken) { CommonUtility.AssertNotNull("blobUri", blobUri); BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(options, BlobType.Unspecified, this); return(Executor.ExecuteAsync( this.GetBlobReferenceImpl(blobUri, accessCondition, modifiedOptions), modifiedOptions.RetryPolicy, operationContext, cancellationToken)); }
internal Task <IList <BlobBatchSubOperationResponse> > ExecuteAsync(CloudBlobClient client, BlobRequestOptions requestOptions = default(BlobRequestOptions), OperationContext operationContext = default(OperationContext), CancellationToken cancellationToken = default(CancellationToken)) { requestOptions = requestOptions ?? BlobRequestOptions.BaseDefaultRequestOptions; BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(requestOptions, BlobType.Unspecified, client); return(Executor.ExecuteAsync( BatchImpl(this, client, requestOptions), modifiedOptions.RetryPolicy, operationContext, cancellationToken)); }
public virtual Task <AccountProperties> GetAccountPropertiesAsync(BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken) { BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(options, BlobType.Unspecified, this); operationContext = operationContext ?? new OperationContext(); return(Task.Run( () => Executor.ExecuteAsync( this.GetAccountPropertiesImpl(modifiedOptions), modifiedOptions.RetryPolicy, operationContext, cancellationToken), cancellationToken)); }
private async Task UploadFromMultiStreamAsync(IEnumerable <Stream> streamList, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken) #endif { CommonUtility.AssertNotNull("streamList", streamList); BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(options, BlobType.BlockBlob, this.ServiceClient); operationContext = operationContext ?? new OperationContext(); int parallelOperations = modifiedOptions.ParallelOperationThreadCount.Value; List <string> blockList = new List <string>(); List <Task> uploadTaskList = new List <Task>(); int blockNum = 0; progressIncrementer = progressIncrementer ?? AggregatingProgressIncrementer.None; foreach (Stream block in streamList) { if (uploadTaskList.Count == parallelOperations) { // The await on WhenAny does not await on the upload task itself, hence exceptions must be repropagated. await Task.WhenAny(uploadTaskList.ToArray()).ConfigureAwait(false); uploadTaskList.RemoveAll(putBlockUpload => { if (putBlockUpload.IsCompleted) { // If set, gets the AggregateException from the upload Task. if (putBlockUpload.Exception != null) { throw putBlockUpload.Exception; } return(true); } return(false); }); } string blockId = Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("Block_{0}", (++blockNum).ToString("00000")))); blockList.Add(blockId); // Capture stream. Stream localBlock = block; try { #if !WINDOWS_RT Task uploadTask = this.PutBlockAsync(blockId, block, null, accessCondition, modifiedOptions, operationContext, progressIncrementer, cancellationToken); #else Task uploadTask = this.PutBlockAsync(blockId, block, null, accessCondition, modifiedOptions, operationContext, cancellationToken); #endif Task cleanupTask = uploadTask.ContinueWith(finishedUpload => { localBlock.Dispose(); }); uploadTaskList.Add(uploadTask); } catch (Exception) { // This is necessary in case an exception is thrown in PutBlockAsync before the continuation is registered. localBlock.Dispose(); throw; } } await Task.WhenAll(uploadTaskList).ConfigureAwait(false); await this.PutBlockListAsync(blockList, accessCondition, modifiedOptions, operationContext, cancellationToken).ConfigureAwait(false); }