public Task <IStorageBlob> ConvertAsync(string input, CancellationToken cancellationToken)
        {
            BlobPath path = BlobPath.ParseAndValidate(input);
            IStorageBlobContainer container = _client.GetContainerReference(path.ContainerName);

            return(container.GetBlobReferenceFromServerAsync(path.BlobName, cancellationToken));
        }
        // For describing InvokeStrings.
        private async Task <IStorageBlob> ConvertFromInvokeString(DirectInvokeString input, Attribute attr, ValueBindingContext context)
        {
            var attrResolved = (BlobTriggerAttribute)attr;
            var account      = await _accountProvider.GetStorageAccountAsync(attrResolved, CancellationToken.None);

            var client = account.CreateBlobClient();

            var      cancellationToken = context.CancellationToken;
            BlobPath path = BlobPath.ParseAndValidate(input.Value);
            IStorageBlobContainer container = client.GetContainerReference(path.ContainerName);
            var blob = await container.GetBlobReferenceFromServerAsync(path.BlobName, cancellationToken);

            return(blob);
        }
        private static async Task<IStorageBlob> GetExistingOrNewBlockBlobReferenceAsync(IStorageBlobContainer container,
            string blobName, CancellationToken cancellationToken)
        {
            try
            {
                return await container.GetBlobReferenceFromServerAsync(blobName, cancellationToken);
            }
            catch (StorageException exception)
            {
                RequestResult result = exception.RequestInformation;

                if (result == null || result.HttpStatusCode != 404)
                {
                    throw;
                }
                else
                {
                    return container.GetBlockBlobReference(blobName);
                }
            }
        }
        private static async Task <IStorageBlob> GetExistingOrNewBlockBlobReferenceAsync(IStorageBlobContainer container,
                                                                                         string blobName, CancellationToken cancellationToken)
        {
            try
            {
                return(await container.GetBlobReferenceFromServerAsync(blobName, cancellationToken));
            }
            catch (StorageException exception)
            {
                RequestResult result = exception.RequestInformation;

                if (result == null || result.HttpStatusCode != 404)
                {
                    throw;
                }
                else
                {
                    return(container.GetBlockBlobReference(blobName));
                }
            }
        }