public ContainerResultSegment ListContainersSegmented(string prefix, ContainerListingDetails detailsIncluded, int?maxResults, BlobContinuationToken currentToken, BlobRequestOptions options = null, OperationContext operationContext = null)
        {
            BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(options, BlobType.Unspecified, this);
            ResultSegment <CloudBlobContainer> resultSegment = this.ListContainersSegmentedCore(prefix, detailsIncluded, maxResults, currentToken, modifiedOptions, operationContext);

            return(new ContainerResultSegment(resultSegment.Results, (BlobContinuationToken)resultSegment.ContinuationToken));
        }
 public void SetServiceProperties(ServiceProperties properties, BlobRequestOptions requestOptions = null, OperationContext operationContext = null)
 {
     requestOptions   = BlobRequestOptions.ApplyDefaults(requestOptions, BlobType.Unspecified, this);
     operationContext = operationContext ?? new OperationContext();
     Executor.ExecuteSync(
         this.SetServicePropertiesImpl(properties, requestOptions),
         requestOptions.RetryPolicy,
         operationContext);
 }
        public IEnumerable <CloudBlobContainer> ListContainers(string prefix, ContainerListingDetails detailsIncluded, BlobRequestOptions options = null, OperationContext operationContext = null)
        {
            BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(options, BlobType.Unspecified, this);

            return(General.LazyEnumerable(
                       token =>
                       this.ListContainersSegmentedCore(prefix, detailsIncluded, null /* maxResults */, (BlobContinuationToken)token, modifiedOptions, operationContext),
                       long.MaxValue,
                       operationContext));
        }
 public ICancellableAsyncResult BeginSetServiceProperties(ServiceProperties properties, BlobRequestOptions requestOptions, OperationContext operationContext, AsyncCallback callback, object state)
 {
     requestOptions   = BlobRequestOptions.ApplyDefaults(requestOptions, BlobType.Unspecified, this);
     operationContext = operationContext ?? new OperationContext();
     return(Executor.BeginExecuteAsync(
                this.SetServicePropertiesImpl(properties, requestOptions),
                requestOptions.RetryPolicy,
                operationContext,
                callback,
                state));
 }
        public ICloudBlob GetBlobReferenceFromServer(Uri blobUri, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null)
        {
            CommonUtils.AssertNotNull("blobUri", blobUri);

            BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(options, BlobType.Unspecified, this);

            return(Executor.ExecuteSync(
                       this.GetBlobReferenceImpl(blobUri, accessCondition, modifiedOptions),
                       modifiedOptions.RetryPolicy,
                       operationContext));
        }
        public ICancellableAsyncResult BeginListContainersSegmented(string prefix, ContainerListingDetails detailsIncluded, int?maxResults, BlobContinuationToken continuationToken, BlobRequestOptions options, OperationContext operationContext, AsyncCallback callback, object state)
        {
            BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(options, BlobType.Unspecified, this);

            return(Executor.BeginExecuteAsync(
                       this.ListContainersImpl(prefix, detailsIncluded, continuationToken, maxResults, modifiedOptions),
                       modifiedOptions.RetryPolicy,
                       operationContext,
                       callback,
                       state));
        }
Exemplo n.º 7
0
        public IAsyncAction SetServicePropertiesAsync(ServiceProperties properties, BlobRequestOptions requestOptions, OperationContext operationContext)
        {
            BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(requestOptions, BlobType.Unspecified, this);

            operationContext = operationContext ?? new OperationContext();
            return(AsyncInfo.Run(async(token) => await Executor.ExecuteAsyncNullReturn(
                                     this.SetServicePropertiesImpl(properties, modifiedOptions),
                                     modifiedOptions.RetryPolicy,
                                     operationContext,
                                     token)));
        }
Exemplo n.º 8
0
        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));
        }
Exemplo n.º 9
0
        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));
        }
Exemplo n.º 10
0
        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));
        }
Exemplo n.º 11
0
        public IAsyncOperation <ICloudBlob> GetBlobReferenceFromServerAsync(Uri blobUri, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
        {
            CommonUtils.AssertNotNull("blobUri", blobUri);

            BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(options, BlobType.Unspecified, this);

            return(AsyncInfo.Run(async(token) => await Executor.ExecuteAsync(
                                     this.GetBlobReferenceImpl(blobUri, accessCondition, modifiedOptions),
                                     modifiedOptions.RetryPolicy,
                                     operationContext,
                                     token)));
        }
Exemplo n.º 12
0
        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 ICancellableAsyncResult BeginGetBlobReferenceFromServer(Uri blobUri, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, AsyncCallback callback, object state)
        {
            CommonUtils.AssertNotNull("blobUri", blobUri);

            BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(options, BlobType.Unspecified, this);

            return(Executor.BeginExecuteAsync(
                       this.GetBlobReferenceImpl(blobUri, accessCondition, modifiedOptions),
                       modifiedOptions.RetryPolicy,
                       operationContext,
                       callback,
                       state));
        }
Exemplo n.º 14
0
        public IAsyncOperation <ServiceStats> GetServiceStatsAsync(BlobRequestOptions options, OperationContext operationContext)
        {
            BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(options, BlobType.Unspecified, this);

            operationContext = operationContext ?? new OperationContext();

            return(AsyncInfo.Run(
                       async(token) => await Executor.ExecuteAsync(
                           this.GetServiceStatsImpl(modifiedOptions),
                           modifiedOptions.RetryPolicy,
                           operationContext,
                           token)));
        }
Exemplo n.º 15
0
        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(
                       async() => await Executor.ExecuteAsync(
                           this.GetAccountPropertiesImpl(modifiedOptions),
                           modifiedOptions.RetryPolicy,
                           operationContext,
                           cancellationToken), cancellationToken));
        }
Exemplo n.º 16
0
        public IAsyncOperation <ContainerResultSegment> ListContainersSegmentedAsync(string prefix, ContainerListingDetails detailsIncluded, int?maxResults, BlobContinuationToken currentToken, BlobRequestOptions options, OperationContext operationContext)
        {
            return(AsyncInfo.Run(async(token) =>
            {
                BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(options, BlobType.Unspecified, this);
                ResultSegment <CloudBlobContainer> resultSegment = await Executor.ExecuteAsync(
                    this.ListContainersImpl(prefix, detailsIncluded, currentToken, maxResults, modifiedOptions),
                    modifiedOptions.RetryPolicy,
                    operationContext,
                    token);

                return new ContainerResultSegment(resultSegment.Results, (BlobContinuationToken)resultSegment.ContinuationToken);
            }));
        }
Exemplo n.º 17
0
        internal async Task UploadFromMultiStreamAsync(IEnumerable <Stream> streamList, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken)
        {
            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;

            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
                {
                    Task uploadTask  = this.PutBlockAsync(blockId, block, null, accessCondition, modifiedOptions, operationContext, cancellationToken);
                    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);
        }