Esempio n. 1
0
        public static async Task <Stream> TryBindStreamAsync(BlobBaseClient blob, CancellationToken cancellationToken, string eTag = null)
        {
            Stream rawStream;

            try
            {
                if (eTag != null)
                {
                    BlobOpenReadOptions readOptions = new BlobOpenReadOptions(allowModifications: false)
                    {
                        Conditions = new BlobRequestConditions()
                        {
                            IfMatch = new ETag(eTag),
                        },
                    };
                    rawStream = await blob.OpenReadAsync(readOptions, cancellationToken : cancellationToken).ConfigureAwait(false);
                }
                else
                {
                    rawStream = await blob.OpenReadAsync(cancellationToken : cancellationToken).ConfigureAwait(false);
                }
            }
            catch (RequestFailedException exception)
            {
                // Testing generic error case since specific error codes are not available for FetchAttributes
                // (HEAD request), including OpenRead.
                if (!exception.IsNotFound())
                {
                    throw;
                }

                return(null);
            }

            return(rawStream);
        }
        public static async Task <Stream> TryBindStreamAsync(BlobBaseClient blob, CancellationToken cancellationToken)
        {
            Stream rawStream;

            try
            {
                rawStream = await blob.OpenReadAsync(cancellationToken : cancellationToken).ConfigureAwait(false);
            }
            catch (RequestFailedException exception)
            {
                // Testing generic error case since specific error codes are not available for FetchAttributes
                // (HEAD request), including OpenRead.
                if (!exception.IsNotFound())
                {
                    throw;
                }

                return(null);
            }

            return(rawStream);
        }