<PackageReference Include="Azure.Storage.Blobs" Version="12.26.0-beta.1" />

BlobContainerClient

public class BlobContainerClient
The BlobContainerClient allows you to manipulate Azure Storage containers and their blobs.
using Azure.Core; using Azure.Core.Pipeline; using Azure.Storage.Blobs.Models; using Azure.Storage.Blobs.Specialized; using Azure.Storage.Common; using Azure.Storage.Cryptography; using Azure.Storage.Sas; using System; using System.Collections.Generic; using System.ComponentModel; using System.IO; using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; namespace Azure.Storage.Blobs { public class BlobContainerClient { public static readonly string RootBlobContainerName = "$root"; public static readonly string LogsBlobContainerName = "$logs"; public static readonly string WebBlobContainerName = "$web"; private readonly Uri _uri; private readonly BlobClientConfiguration _clientConfiguration; private readonly HttpPipelinePolicy _authenticationPolicy; private readonly ClientSideEncryptionOptions _clientSideEncryption; private string _accountName; private string _name; private readonly ContainerRestClient _containerRestClient; private BlobServiceClient _parentBlobServiceClient; public virtual Uri Uri => _uri; internal virtual BlobClientConfiguration ClientConfiguration => _clientConfiguration; internal virtual HttpPipelinePolicy AuthenticationPolicy => _authenticationPolicy; internal virtual ClientSideEncryptionOptions ClientSideEncryption => _clientSideEncryption; public virtual string AccountName { get { SetNameFieldsIfNull(); return _accountName; } } public virtual string Name { get { SetNameFieldsIfNull(); return _name; } } public virtual bool CanGenerateSasUri => (object)ClientConfiguration.SharedKeyCredential != null; internal virtual ContainerRestClient ContainerRestClient => _containerRestClient; protected BlobContainerClient() { } public BlobContainerClient(string connectionString, string blobContainerName) : this(connectionString, blobContainerName, null) { } public BlobContainerClient(string connectionString, string blobContainerName, BlobClientOptions options) { Argument.AssertNotNullOrWhiteSpace(blobContainerName, "blobContainerName"); StorageConnectionString storageConnectionString = StorageConnectionString.Parse(connectionString); BlobUriBuilder blobUriBuilder = new BlobUriBuilder(storageConnectionString.BlobEndpoint, options?.TrimBlobNameSlashes ?? true) { BlobContainerName = blobContainerName }; _uri = blobUriBuilder.ToUri(); _name = blobContainerName; _accountName = storageConnectionString.AccountName; if (options == null) options = new BlobClientOptions(BlobClientOptions.ServiceVersion.V2025_11_05); _clientConfiguration = new BlobClientConfiguration(options.Build(storageConnectionString.Credentials), storageConnectionString.Credentials as StorageSharedKeyCredential, new ClientDiagnostics(options, null), options.Version, options.CustomerProvidedKey, options.TransferValidation, options.EncryptionScope, options.TrimBlobNameSlashes); _authenticationPolicy = StorageClientOptions.GetAuthenticationPolicy(storageConnectionString.Credentials, null, null); ClientSideEncryptionOptions clientSideEncryptionOptions = options._clientSideEncryptionOptions; _clientSideEncryption = ((clientSideEncryptionOptions != null) ? clientSideEncryptionOptions.Clone() : null); _containerRestClient = BuildContainerRestClient(_uri); BlobErrors.VerifyHttpsCustomerProvidedKey(_uri, _clientConfiguration.CustomerProvidedKey); BlobErrors.VerifyCpkAndEncryptionScopeNotBothSet(_clientConfiguration.CustomerProvidedKey, _clientConfiguration.EncryptionScope); } public BlobContainerClient(Uri blobContainerUri, BlobClientOptions options = null) { Argument.AssertNotNull(blobContainerUri, "blobContainerUri"); _uri = blobContainerUri; _authenticationPolicy = null; if (options == null) options = new BlobClientOptions(BlobClientOptions.ServiceVersion.V2025_11_05); _clientConfiguration = new BlobClientConfiguration(options.Build(null), null, null, null, new ClientDiagnostics(options, null), options.Version, options.CustomerProvidedKey, options.TransferValidation, options.EncryptionScope, options.TrimBlobNameSlashes); ClientSideEncryptionOptions clientSideEncryptionOptions = options._clientSideEncryptionOptions; _clientSideEncryption = ((clientSideEncryptionOptions != null) ? clientSideEncryptionOptions.Clone() : null); _containerRestClient = BuildContainerRestClient(blobContainerUri); BlobErrors.VerifyHttpsCustomerProvidedKey(_uri, _clientConfiguration.CustomerProvidedKey); BlobErrors.VerifyCpkAndEncryptionScopeNotBothSet(_clientConfiguration.CustomerProvidedKey, _clientConfiguration.EncryptionScope); } public BlobContainerClient(Uri blobContainerUri, StorageSharedKeyCredential credential, BlobClientOptions options = null) { Argument.AssertNotNull(blobContainerUri, "blobContainerUri"); HttpPipelinePolicy val = credential.AsPolicy(); _uri = blobContainerUri; _accountName = credential.get_AccountName(); _authenticationPolicy = val; if (options == null) options = new BlobClientOptions(BlobClientOptions.ServiceVersion.V2025_11_05); _clientConfiguration = new BlobClientConfiguration(options.Build(val), credential, new ClientDiagnostics(options, null), options.Version, options.CustomerProvidedKey, options.TransferValidation, options.EncryptionScope, options.TrimBlobNameSlashes); ClientSideEncryptionOptions clientSideEncryptionOptions = options._clientSideEncryptionOptions; _clientSideEncryption = ((clientSideEncryptionOptions != null) ? clientSideEncryptionOptions.Clone() : null); _containerRestClient = BuildContainerRestClient(blobContainerUri); BlobErrors.VerifyHttpsCustomerProvidedKey(_uri, _clientConfiguration.CustomerProvidedKey); BlobErrors.VerifyCpkAndEncryptionScopeNotBothSet(_clientConfiguration.CustomerProvidedKey, _clientConfiguration.EncryptionScope); } public BlobContainerClient(Uri blobContainerUri, AzureSasCredential credential, BlobClientOptions options = null) { Argument.AssertNotNull(blobContainerUri, "blobContainerUri"); _uri = blobContainerUri; _authenticationPolicy = credential.AsPolicy<BlobUriBuilder>(blobContainerUri); if (options == null) options = new BlobClientOptions(BlobClientOptions.ServiceVersion.V2025_11_05); _clientConfiguration = new BlobClientConfiguration(options.Build(_authenticationPolicy), credential, new ClientDiagnostics(options, null), options.Version, options.CustomerProvidedKey, options.TransferValidation, options.EncryptionScope, options.TrimBlobNameSlashes); ClientSideEncryptionOptions clientSideEncryptionOptions = options._clientSideEncryptionOptions; _clientSideEncryption = ((clientSideEncryptionOptions != null) ? clientSideEncryptionOptions.Clone() : null); _containerRestClient = BuildContainerRestClient(blobContainerUri); BlobErrors.VerifyHttpsCustomerProvidedKey(_uri, _clientConfiguration.CustomerProvidedKey); BlobErrors.VerifyCpkAndEncryptionScopeNotBothSet(_clientConfiguration.CustomerProvidedKey, _clientConfiguration.EncryptionScope); } public BlobContainerClient(Uri blobContainerUri, TokenCredential credential, BlobClientOptions options = null) { Errors.VerifyHttpsTokenAuth(blobContainerUri); Argument.AssertNotNull(blobContainerUri, "blobContainerUri"); _uri = blobContainerUri; object value; BlobAudience? audience; BlobAudience blobAudience; if (options == null) value = null; else { audience = options.Audience; if (!audience.HasValue) value = null; else { blobAudience = audience.GetValueOrDefault(); value = blobAudience.ToString(); } } object text; if (!string.IsNullOrEmpty((string)value)) { audience = options.Audience; blobAudience = audience.Value; text = blobAudience.CreateDefaultScope(); } else { blobAudience = BlobAudience.DefaultAudience; text = blobAudience.CreateDefaultScope(); } string scope = (string)text; _authenticationPolicy = credential.AsPolicy(scope, options); if (options == null) options = new BlobClientOptions(BlobClientOptions.ServiceVersion.V2025_11_05); _clientConfiguration = new BlobClientConfiguration(options.Build(_authenticationPolicy), credential, new ClientDiagnostics(options, null), options.Version, options.CustomerProvidedKey, options.TransferValidation, options.EncryptionScope, options.TrimBlobNameSlashes); ClientSideEncryptionOptions clientSideEncryptionOptions = options._clientSideEncryptionOptions; _clientSideEncryption = ((clientSideEncryptionOptions != null) ? clientSideEncryptionOptions.Clone() : null); _containerRestClient = BuildContainerRestClient(blobContainerUri); BlobErrors.VerifyHttpsCustomerProvidedKey(_uri, _clientConfiguration.CustomerProvidedKey); BlobErrors.VerifyCpkAndEncryptionScopeNotBothSet(_clientConfiguration.CustomerProvidedKey, _clientConfiguration.EncryptionScope); } internal BlobContainerClient(Uri containerUri, BlobClientConfiguration clientConfiguration, ClientSideEncryptionOptions clientSideEncryption) { _uri = containerUri; _clientConfiguration = clientConfiguration; _authenticationPolicy = StorageClientOptions.GetAuthenticationPolicy(((object)_clientConfiguration.SharedKeyCredential) ?? ((object)_clientConfiguration.TokenCredential) ?? ((object)_clientConfiguration.SasCredential), null, null); _clientSideEncryption = ((clientSideEncryption != null) ? clientSideEncryption.Clone() : null); _containerRestClient = BuildContainerRestClient(containerUri); BlobErrors.VerifyHttpsCustomerProvidedKey(_uri, _clientConfiguration.CustomerProvidedKey); BlobErrors.VerifyCpkAndEncryptionScopeNotBothSet(_clientConfiguration.CustomerProvidedKey, _clientConfiguration.EncryptionScope); } internal BlobContainerClient(Uri containerUri, BlobClientConfiguration clientConfiguration, HttpPipelinePolicy authentication, ClientSideEncryptionOptions clientSideEncryption) { _uri = containerUri; _clientConfiguration = clientConfiguration; _authenticationPolicy = authentication; _clientSideEncryption = ((clientSideEncryption != null) ? clientSideEncryption.Clone() : null); _containerRestClient = BuildContainerRestClient(containerUri); BlobErrors.VerifyHttpsCustomerProvidedKey(_uri, _clientConfiguration.CustomerProvidedKey); BlobErrors.VerifyCpkAndEncryptionScopeNotBothSet(_clientConfiguration.CustomerProvidedKey, _clientConfiguration.EncryptionScope); } protected static BlobContainerClient CreateClient(Uri containerUri, BlobClientOptions options, HttpPipeline pipeline) { return new BlobContainerClient(containerUri, new BlobClientConfiguration(pipeline, null, new ClientDiagnostics(options, null), options.Version, (CustomerProvidedKey?)null, options.TransferValidation, (string)null, options.TrimBlobNameSlashes), null); } private ContainerRestClient BuildContainerRestClient(Uri containerUri) { return new ContainerRestClient(_clientConfiguration.ClientDiagnostics, _clientConfiguration.Pipeline, containerUri.AbsoluteUri, _clientConfiguration.Version.ToVersionString()); } protected internal virtual BlobBaseClient GetBlobBaseClientCore(string blobName) { Argument.AssertNotNullOrEmpty(blobName, "blobName"); return new BlobBaseClient(new BlobUriBuilder(Uri, ClientConfiguration.TrimBlobNameSlashes) { BlobName = blobName }.ToUri(), ClientConfiguration, ClientSideEncryption); } public virtual BlobClient GetBlobClient(string blobName) { Argument.AssertNotNullOrEmpty(blobName, "blobName"); return new BlobClient(new BlobUriBuilder(Uri, ClientConfiguration.TrimBlobNameSlashes) { BlobName = blobName }.ToUri(), ClientConfiguration, ClientSideEncryption); } protected internal virtual BlockBlobClient GetBlockBlobClientCore(string blobName) { Argument.AssertNotNullOrEmpty(blobName, "blobName"); if ((object)ClientSideEncryption != null) throw Errors.ClientSideEncryption.TypeNotSupported(typeof(BlockBlobClient)); return new BlockBlobClient(new BlobUriBuilder(Uri, ClientConfiguration.TrimBlobNameSlashes) { BlobName = blobName }.ToUri(), ClientConfiguration); } protected internal virtual AppendBlobClient GetAppendBlobClientCore(string blobName) { Argument.AssertNotNullOrEmpty(blobName, "blobName"); if ((object)ClientSideEncryption != null) throw Errors.ClientSideEncryption.TypeNotSupported(typeof(AppendBlobClient)); return new AppendBlobClient(new BlobUriBuilder(Uri, ClientConfiguration.TrimBlobNameSlashes) { BlobName = blobName }.ToUri(), ClientConfiguration); } protected internal virtual PageBlobClient GetPageBlobClientCore(string blobName) { Argument.AssertNotNullOrEmpty(blobName, "blobName"); if ((object)ClientSideEncryption != null) throw Errors.ClientSideEncryption.TypeNotSupported(typeof(PageBlobClient)); return new PageBlobClient(new BlobUriBuilder(Uri, ClientConfiguration.TrimBlobNameSlashes) { BlobName = blobName }.ToUri(), ClientConfiguration); } protected internal virtual BlobLeaseClient GetBlobLeaseClientCore(string leaseId) { return new BlobLeaseClient(this, leaseId); } private void SetNameFieldsIfNull() { if (_name == null || _accountName == null) { BlobUriBuilder blobUriBuilder = new BlobUriBuilder(Uri, ClientConfiguration.TrimBlobNameSlashes); if (_name == null) _name = blobUriBuilder.BlobContainerName; if (_accountName == null) _accountName = blobUriBuilder.AccountName; } } public virtual Response<BlobContainerInfo> Create(PublicAccessType publicAccessType = PublicAccessType.None, IDictionary<string, string> metadata = null, BlobContainerEncryptionScopeOptions encryptionScopeOptions = null, CancellationToken cancellationToken = default(CancellationToken)) { return CreateInternal(publicAccessType, metadata, encryptionScopeOptions, false, cancellationToken, null).EnsureCompleted(); } [EditorBrowsable(EditorBrowsableState.Never)] public virtual Response<BlobContainerInfo> Create(PublicAccessType publicAccessType, IDictionary<string, string> metadata, CancellationToken cancellationToken) { return CreateInternal(publicAccessType, metadata, null, false, cancellationToken, null).EnsureCompleted(); } [AsyncStateMachine(typeof(<CreateAsync>d__46))] public virtual Task<Response<BlobContainerInfo>> CreateAsync(PublicAccessType publicAccessType = PublicAccessType.None, IDictionary<string, string> metadata = null, BlobContainerEncryptionScopeOptions encryptionScopeOptions = null, CancellationToken cancellationToken = default(CancellationToken)) { <CreateAsync>d__46 stateMachine = default(<CreateAsync>d__46); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerInfo>>.Create(); stateMachine.<>4__this = this; stateMachine.publicAccessType = publicAccessType; stateMachine.metadata = metadata; stateMachine.encryptionScopeOptions = encryptionScopeOptions; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<CreateAsync>d__47))] [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task<Response<BlobContainerInfo>> CreateAsync(PublicAccessType publicAccessType, IDictionary<string, string> metadata, CancellationToken cancellationToken) { <CreateAsync>d__47 stateMachine = default(<CreateAsync>d__47); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerInfo>>.Create(); stateMachine.<>4__this = this; stateMachine.publicAccessType = publicAccessType; stateMachine.metadata = metadata; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } public virtual Response<BlobContainerInfo> CreateIfNotExists(PublicAccessType publicAccessType = PublicAccessType.None, IDictionary<string, string> metadata = null, BlobContainerEncryptionScopeOptions encryptionScopeOptions = null, CancellationToken cancellationToken = default(CancellationToken)) { return CreateIfNotExistsInternal(publicAccessType, metadata, encryptionScopeOptions, false, cancellationToken).EnsureCompleted(); } [EditorBrowsable(EditorBrowsableState.Never)] public virtual Response<BlobContainerInfo> CreateIfNotExists(PublicAccessType publicAccessType, IDictionary<string, string> metadata, CancellationToken cancellationToken) { return CreateIfNotExistsInternal(publicAccessType, metadata, null, false, cancellationToken).EnsureCompleted(); } [AsyncStateMachine(typeof(<CreateIfNotExistsAsync>d__50))] public virtual Task<Response<BlobContainerInfo>> CreateIfNotExistsAsync(PublicAccessType publicAccessType = PublicAccessType.None, IDictionary<string, string> metadata = null, BlobContainerEncryptionScopeOptions encryptionScopeOptions = null, CancellationToken cancellationToken = default(CancellationToken)) { <CreateIfNotExistsAsync>d__50 stateMachine = default(<CreateIfNotExistsAsync>d__50); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerInfo>>.Create(); stateMachine.<>4__this = this; stateMachine.publicAccessType = publicAccessType; stateMachine.metadata = metadata; stateMachine.encryptionScopeOptions = encryptionScopeOptions; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<CreateIfNotExistsAsync>d__51))] [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task<Response<BlobContainerInfo>> CreateIfNotExistsAsync(PublicAccessType publicAccessType, IDictionary<string, string> metadata, CancellationToken cancellationToken) { <CreateIfNotExistsAsync>d__51 stateMachine = default(<CreateIfNotExistsAsync>d__51); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerInfo>>.Create(); stateMachine.<>4__this = this; stateMachine.publicAccessType = publicAccessType; stateMachine.metadata = metadata; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<CreateIfNotExistsInternal>d__52))] private Task<Response<BlobContainerInfo>> CreateIfNotExistsInternal(PublicAccessType publicAccessType, IDictionary<string, string> metadata, BlobContainerEncryptionScopeOptions encryptionScopeOptions, bool async, CancellationToken cancellationToken) { <CreateIfNotExistsInternal>d__52 stateMachine = default(<CreateIfNotExistsInternal>d__52); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerInfo>>.Create(); stateMachine.<>4__this = this; stateMachine.publicAccessType = publicAccessType; stateMachine.metadata = metadata; stateMachine.encryptionScopeOptions = encryptionScopeOptions; stateMachine.async = async; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<CreateInternal>d__53))] private Task<Response<BlobContainerInfo>> CreateInternal(PublicAccessType publicAccessType, IDictionary<string, string> metadata, BlobContainerEncryptionScopeOptions encryptionScopeOptions, bool async, CancellationToken cancellationToken, string operationName = null) { <CreateInternal>d__53 stateMachine = default(<CreateInternal>d__53); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerInfo>>.Create(); stateMachine.<>4__this = this; stateMachine.publicAccessType = publicAccessType; stateMachine.metadata = metadata; stateMachine.encryptionScopeOptions = encryptionScopeOptions; stateMachine.async = async; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } public virtual Response Delete(BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)) { return DeleteInternal(conditions, false, cancellationToken, null).EnsureCompleted(); } [AsyncStateMachine(typeof(<DeleteAsync>d__55))] public virtual Task<Response> DeleteAsync(BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)) { <DeleteAsync>d__55 stateMachine = default(<DeleteAsync>d__55); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response>.Create(); stateMachine.<>4__this = this; stateMachine.conditions = conditions; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } public virtual Response<bool> DeleteIfExists(BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)) { return DeleteIfExistsInternal(conditions, false, cancellationToken).EnsureCompleted(); } [AsyncStateMachine(typeof(<DeleteIfExistsAsync>d__57))] public virtual Task<Response<bool>> DeleteIfExistsAsync(BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)) { <DeleteIfExistsAsync>d__57 stateMachine = default(<DeleteIfExistsAsync>d__57); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<bool>>.Create(); stateMachine.<>4__this = this; stateMachine.conditions = conditions; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<DeleteIfExistsInternal>d__58))] private Task<Response<bool>> DeleteIfExistsInternal(BlobRequestConditions conditions, bool async, CancellationToken cancellationToken) { <DeleteIfExistsInternal>d__58 stateMachine = default(<DeleteIfExistsInternal>d__58); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<bool>>.Create(); stateMachine.<>4__this = this; stateMachine.conditions = conditions; stateMachine.async = async; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<DeleteInternal>d__59))] private Task<Response> DeleteInternal(BlobRequestConditions conditions, bool async, CancellationToken cancellationToken, string operationName = null) { <DeleteInternal>d__59 stateMachine = default(<DeleteInternal>d__59); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response>.Create(); stateMachine.<>4__this = this; stateMachine.conditions = conditions; stateMachine.async = async; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } public virtual Response<bool> Exists(CancellationToken cancellationToken = default(CancellationToken)) { return ExistsInternal(false, cancellationToken).EnsureCompleted(); } [AsyncStateMachine(typeof(<ExistsAsync>d__61))] public virtual Task<Response<bool>> ExistsAsync(CancellationToken cancellationToken = default(CancellationToken)) { <ExistsAsync>d__61 stateMachine = default(<ExistsAsync>d__61); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<bool>>.Create(); stateMachine.<>4__this = this; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<ExistsInternal>d__62))] private Task<Response<bool>> ExistsInternal(bool async, CancellationToken cancellationToken) { <ExistsInternal>d__62 stateMachine = default(<ExistsInternal>d__62); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<bool>>.Create(); stateMachine.<>4__this = this; stateMachine.async = async; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } public virtual Response<BlobContainerProperties> GetProperties(BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)) { return GetPropertiesInternal(conditions, false, cancellationToken).EnsureCompleted(); } [AsyncStateMachine(typeof(<GetPropertiesAsync>d__64))] public virtual Task<Response<BlobContainerProperties>> GetPropertiesAsync(BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)) { <GetPropertiesAsync>d__64 stateMachine = default(<GetPropertiesAsync>d__64); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerProperties>>.Create(); stateMachine.<>4__this = this; stateMachine.conditions = conditions; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<GetPropertiesInternal>d__65))] private Task<Response<BlobContainerProperties>> GetPropertiesInternal(BlobRequestConditions conditions, bool async, CancellationToken cancellationToken) { <GetPropertiesInternal>d__65 stateMachine = default(<GetPropertiesInternal>d__65); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerProperties>>.Create(); stateMachine.<>4__this = this; stateMachine.conditions = conditions; stateMachine.async = async; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } public virtual Response<BlobContainerInfo> SetMetadata(IDictionary<string, string> metadata, BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)) { return SetMetadataInternal(metadata, conditions, false, cancellationToken).EnsureCompleted(); } [AsyncStateMachine(typeof(<SetMetadataAsync>d__67))] public virtual Task<Response<BlobContainerInfo>> SetMetadataAsync(IDictionary<string, string> metadata, BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)) { <SetMetadataAsync>d__67 stateMachine = default(<SetMetadataAsync>d__67); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerInfo>>.Create(); stateMachine.<>4__this = this; stateMachine.metadata = metadata; stateMachine.conditions = conditions; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<SetMetadataInternal>d__68))] private Task<Response<BlobContainerInfo>> SetMetadataInternal(IDictionary<string, string> metadata, BlobRequestConditions conditions, bool async, CancellationToken cancellationToken) { <SetMetadataInternal>d__68 stateMachine = default(<SetMetadataInternal>d__68); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerInfo>>.Create(); stateMachine.<>4__this = this; stateMachine.metadata = metadata; stateMachine.conditions = conditions; stateMachine.async = async; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } public virtual Response<BlobContainerAccessPolicy> GetAccessPolicy(BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)) { return GetAccessPolicyInternal(conditions, false, cancellationToken).EnsureCompleted(); } [AsyncStateMachine(typeof(<GetAccessPolicyAsync>d__70))] public virtual Task<Response<BlobContainerAccessPolicy>> GetAccessPolicyAsync(BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)) { <GetAccessPolicyAsync>d__70 stateMachine = default(<GetAccessPolicyAsync>d__70); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerAccessPolicy>>.Create(); stateMachine.<>4__this = this; stateMachine.conditions = conditions; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<GetAccessPolicyInternal>d__71))] private Task<Response<BlobContainerAccessPolicy>> GetAccessPolicyInternal(BlobRequestConditions conditions, bool async, CancellationToken cancellationToken) { <GetAccessPolicyInternal>d__71 stateMachine = default(<GetAccessPolicyInternal>d__71); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerAccessPolicy>>.Create(); stateMachine.<>4__this = this; stateMachine.conditions = conditions; stateMachine.async = async; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [CallerShouldAudit("https://aka.ms/azsdk/callershouldaudit/storage-blobs")] public virtual Response<BlobContainerInfo> SetAccessPolicy(PublicAccessType accessType = PublicAccessType.None, IEnumerable<BlobSignedIdentifier> permissions = null, BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)) { return SetAccessPolicyInternal(accessType, permissions, conditions, false, cancellationToken).EnsureCompleted(); } [AsyncStateMachine(typeof(<SetAccessPolicyAsync>d__73))] [CallerShouldAudit("https://aka.ms/azsdk/callershouldaudit/storage-blobs")] public virtual Task<Response<BlobContainerInfo>> SetAccessPolicyAsync(PublicAccessType accessType = PublicAccessType.None, IEnumerable<BlobSignedIdentifier> permissions = null, BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)) { <SetAccessPolicyAsync>d__73 stateMachine = default(<SetAccessPolicyAsync>d__73); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerInfo>>.Create(); stateMachine.<>4__this = this; stateMachine.accessType = accessType; stateMachine.permissions = permissions; stateMachine.conditions = conditions; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<SetAccessPolicyInternal>d__74))] private Task<Response<BlobContainerInfo>> SetAccessPolicyInternal(PublicAccessType accessType, IEnumerable<BlobSignedIdentifier> permissions, BlobRequestConditions conditions, bool async, CancellationToken cancellationToken) { <SetAccessPolicyInternal>d__74 stateMachine = default(<SetAccessPolicyInternal>d__74); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerInfo>>.Create(); stateMachine.<>4__this = this; stateMachine.accessType = accessType; stateMachine.permissions = permissions; stateMachine.conditions = conditions; stateMachine.async = async; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } public virtual Pageable<BlobItem> GetBlobs(BlobTraits traits = BlobTraits.None, BlobStates states = BlobStates.None, string prefix = null, CancellationToken cancellationToken = default(CancellationToken)) { return new GetBlobsAsyncCollection(this, traits, states, prefix).ToSyncCollection(cancellationToken); } public virtual AsyncPageable<BlobItem> GetBlobsAsync(BlobTraits traits = BlobTraits.None, BlobStates states = BlobStates.None, string prefix = null, CancellationToken cancellationToken = default(CancellationToken)) { return new GetBlobsAsyncCollection(this, traits, states, prefix).ToAsyncCollection(cancellationToken); } [AsyncStateMachine(typeof(<GetBlobsInternal>d__77))] internal Task<Response<ListBlobsFlatSegmentResponse>> GetBlobsInternal(string marker, BlobTraits traits, BlobStates states, string prefix, int? pageSizeHint, bool async, CancellationToken cancellationToken) { <GetBlobsInternal>d__77 stateMachine = default(<GetBlobsInternal>d__77); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<ListBlobsFlatSegmentResponse>>.Create(); stateMachine.<>4__this = this; stateMachine.marker = marker; stateMachine.traits = traits; stateMachine.states = states; stateMachine.prefix = prefix; stateMachine.pageSizeHint = pageSizeHint; stateMachine.async = async; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } public virtual Pageable<BlobHierarchyItem> GetBlobsByHierarchy(BlobTraits traits = BlobTraits.None, BlobStates states = BlobStates.None, string delimiter = null, string prefix = null, CancellationToken cancellationToken = default(CancellationToken)) { return new GetBlobsByHierarchyAsyncCollection(this, delimiter, traits, states, prefix).ToSyncCollection(cancellationToken); } public virtual AsyncPageable<BlobHierarchyItem> GetBlobsByHierarchyAsync(BlobTraits traits = BlobTraits.None, BlobStates states = BlobStates.None, string delimiter = null, string prefix = null, CancellationToken cancellationToken = default(CancellationToken)) { return new GetBlobsByHierarchyAsyncCollection(this, delimiter, traits, states, prefix).ToAsyncCollection(cancellationToken); } [AsyncStateMachine(typeof(<GetBlobsByHierarchyInternal>d__80))] internal Task<Response<ListBlobsHierarchySegmentResponse>> GetBlobsByHierarchyInternal(string marker, string delimiter, BlobTraits traits, BlobStates states, string prefix, int? pageSizeHint, bool async, CancellationToken cancellationToken) { <GetBlobsByHierarchyInternal>d__80 stateMachine = default(<GetBlobsByHierarchyInternal>d__80); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<ListBlobsHierarchySegmentResponse>>.Create(); stateMachine.<>4__this = this; stateMachine.marker = marker; stateMachine.delimiter = delimiter; stateMachine.traits = traits; stateMachine.states = states; stateMachine.prefix = prefix; stateMachine.pageSizeHint = pageSizeHint; stateMachine.async = async; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [ForwardsClientCalls] public virtual Response<BlobContentInfo> UploadBlob(string blobName, Stream content, CancellationToken cancellationToken = default(CancellationToken)) { return GetBlobClient(blobName).Upload(content, cancellationToken); } [AsyncStateMachine(typeof(<UploadBlobAsync>d__82))] [ForwardsClientCalls] public virtual Task<Response<BlobContentInfo>> UploadBlobAsync(string blobName, Stream content, CancellationToken cancellationToken = default(CancellationToken)) { <UploadBlobAsync>d__82 stateMachine = default(<UploadBlobAsync>d__82); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContentInfo>>.Create(); stateMachine.<>4__this = this; stateMachine.blobName = blobName; stateMachine.content = content; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [ForwardsClientCalls] public virtual Response<BlobContentInfo> UploadBlob(string blobName, BinaryData content, CancellationToken cancellationToken = default(CancellationToken)) { return GetBlobClient(blobName).Upload(content, cancellationToken); } [AsyncStateMachine(typeof(<UploadBlobAsync>d__84))] [ForwardsClientCalls] public virtual Task<Response<BlobContentInfo>> UploadBlobAsync(string blobName, BinaryData content, CancellationToken cancellationToken = default(CancellationToken)) { <UploadBlobAsync>d__84 stateMachine = default(<UploadBlobAsync>d__84); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContentInfo>>.Create(); stateMachine.<>4__this = this; stateMachine.blobName = blobName; stateMachine.content = content; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [ForwardsClientCalls] public virtual Response DeleteBlob(string blobName, DeleteSnapshotsOption snapshotsOption = DeleteSnapshotsOption.None, BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)) { return GetBlobClient(blobName).Delete(snapshotsOption, conditions, cancellationToken); } [AsyncStateMachine(typeof(<DeleteBlobAsync>d__86))] [ForwardsClientCalls] public virtual Task<Response> DeleteBlobAsync(string blobName, DeleteSnapshotsOption snapshotsOption = DeleteSnapshotsOption.None, BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)) { <DeleteBlobAsync>d__86 stateMachine = default(<DeleteBlobAsync>d__86); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response>.Create(); stateMachine.<>4__this = this; stateMachine.blobName = blobName; stateMachine.snapshotsOption = snapshotsOption; stateMachine.conditions = conditions; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [ForwardsClientCalls] public virtual Response<bool> DeleteBlobIfExists(string blobName, DeleteSnapshotsOption snapshotsOption = DeleteSnapshotsOption.None, BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)) { return GetBlobClient(blobName).DeleteIfExists(snapshotsOption, conditions ?? null, cancellationToken); } [AsyncStateMachine(typeof(<DeleteBlobIfExistsAsync>d__88))] [ForwardsClientCalls] public virtual Task<Response<bool>> DeleteBlobIfExistsAsync(string blobName, DeleteSnapshotsOption snapshotsOption = DeleteSnapshotsOption.None, BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken)) { <DeleteBlobIfExistsAsync>d__88 stateMachine = default(<DeleteBlobIfExistsAsync>d__88); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<bool>>.Create(); stateMachine.<>4__this = this; stateMachine.blobName = blobName; stateMachine.snapshotsOption = snapshotsOption; stateMachine.conditions = conditions; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } internal virtual Response<BlobContainerClient> Rename(string destinationContainerName, BlobRequestConditions sourceConditions = null, CancellationToken cancellationToken = default(CancellationToken)) { return RenameInternal(destinationContainerName, sourceConditions, false, cancellationToken).EnsureCompleted(); } [AsyncStateMachine(typeof(<RenameAsync>d__90))] internal virtual Task<Response<BlobContainerClient>> RenameAsync(string destinationContainerName, BlobRequestConditions sourceConditions = null, CancellationToken cancellationToken = default(CancellationToken)) { <RenameAsync>d__90 stateMachine = default(<RenameAsync>d__90); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerClient>>.Create(); stateMachine.<>4__this = this; stateMachine.destinationContainerName = destinationContainerName; stateMachine.sourceConditions = sourceConditions; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<RenameInternal>d__91))] internal Task<Response<BlobContainerClient>> RenameInternal(string destinationContainerName, BlobRequestConditions sourceConditions, bool async, CancellationToken cancellationToken) { <RenameInternal>d__91 stateMachine = default(<RenameInternal>d__91); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerClient>>.Create(); stateMachine.<>4__this = this; stateMachine.destinationContainerName = destinationContainerName; stateMachine.sourceConditions = sourceConditions; stateMachine.async = async; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } public virtual Pageable<TaggedBlobItem> FindBlobsByTags(string tagFilterSqlExpression, CancellationToken cancellationToken = default(CancellationToken)) { return new FilterBlobsAsyncCollection(this, tagFilterSqlExpression).ToSyncCollection(cancellationToken); } public virtual AsyncPageable<TaggedBlobItem> FindBlobsByTagsAsync(string tagFilterSqlExpression, CancellationToken cancellationToken = default(CancellationToken)) { return new FilterBlobsAsyncCollection(this, tagFilterSqlExpression).ToAsyncCollection(cancellationToken); } [AsyncStateMachine(typeof(<FindBlobsByTagsInternal>d__94))] internal Task<Response<FilterBlobSegment>> FindBlobsByTagsInternal(string marker, string expression, int? pageSizeHint, bool async, CancellationToken cancellationToken) { <FindBlobsByTagsInternal>d__94 stateMachine = default(<FindBlobsByTagsInternal>d__94); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<FilterBlobSegment>>.Create(); stateMachine.<>4__this = this; stateMachine.marker = marker; stateMachine.expression = expression; stateMachine.pageSizeHint = pageSizeHint; stateMachine.async = async; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } public virtual Response<AccountInfo> GetAccountInfo(CancellationToken cancellationToken = default(CancellationToken)) { return GetAccountInfoInternal(false, cancellationToken).EnsureCompleted(); } [AsyncStateMachine(typeof(<GetAccountInfoAsync>d__96))] public virtual Task<Response<AccountInfo>> GetAccountInfoAsync(CancellationToken cancellationToken = default(CancellationToken)) { <GetAccountInfoAsync>d__96 stateMachine = default(<GetAccountInfoAsync>d__96); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<AccountInfo>>.Create(); stateMachine.<>4__this = this; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<GetAccountInfoInternal>d__97))] private Task<Response<AccountInfo>> GetAccountInfoInternal(bool async, CancellationToken cancellationToken) { <GetAccountInfoInternal>d__97 stateMachine = default(<GetAccountInfoInternal>d__97); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<AccountInfo>>.Create(); stateMachine.<>4__this = this; stateMachine.async = async; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [CallerShouldAudit("https://aka.ms/azsdk/callershouldaudit/storage-blobs")] public virtual Uri GenerateSasUri(BlobContainerSasPermissions permissions, DateTimeOffset expiresOn) { string stringToSign; return GenerateSasUri(permissions, expiresOn, out stringToSign); } [EditorBrowsable(EditorBrowsableState.Never)] [CallerShouldAudit("https://aka.ms/azsdk/callershouldaudit/storage-blobs")] public virtual Uri GenerateSasUri(BlobContainerSasPermissions permissions, DateTimeOffset expiresOn, out string stringToSign) { return GenerateSasUri(new BlobSasBuilder(permissions, expiresOn) { BlobContainerName = Name }, out stringToSign); } [CallerShouldAudit("https://aka.ms/azsdk/callershouldaudit/storage-blobs")] public virtual Uri GenerateSasUri(BlobSasBuilder builder) { string stringToSign; return GenerateSasUri(builder, out stringToSign); } [EditorBrowsable(EditorBrowsableState.Never)] [CallerShouldAudit("https://aka.ms/azsdk/callershouldaudit/storage-blobs")] public virtual Uri GenerateSasUri(BlobSasBuilder builder, out string stringToSign) { BlobSasBuilder blobSasBuilder = builder; if (blobSasBuilder == null) throw Errors.ArgumentNull("builder"); builder = blobSasBuilder; builder = BlobSasBuilder.DeepCopy(builder); SetBuilderAndValidate(builder); return new BlobUriBuilder(Uri, ClientConfiguration.TrimBlobNameSlashes) { Sas = builder.ToSasQueryParameters(ClientConfiguration.SharedKeyCredential, out stringToSign) }.ToUri(); } [CallerShouldAudit("https://aka.ms/azsdk/callershouldaudit/storage-blobs")] public virtual Uri GenerateUserDelegationSasUri(BlobContainerSasPermissions permissions, DateTimeOffset expiresOn, UserDelegationKey userDelegationKey) { string stringToSign; return GenerateUserDelegationSasUri(permissions, expiresOn, userDelegationKey, out stringToSign); } [EditorBrowsable(EditorBrowsableState.Never)] [CallerShouldAudit("https://aka.ms/azsdk/callershouldaudit/storage-blobs")] public virtual Uri GenerateUserDelegationSasUri(BlobContainerSasPermissions permissions, DateTimeOffset expiresOn, UserDelegationKey userDelegationKey, out string stringToSign) { return GenerateUserDelegationSasUri(new BlobSasBuilder(permissions, expiresOn) { BlobContainerName = Name }, userDelegationKey, out stringToSign); } [CallerShouldAudit("https://aka.ms/azsdk/callershouldaudit/storage-blobs")] public virtual Uri GenerateUserDelegationSasUri(BlobSasBuilder builder, UserDelegationKey userDelegationKey) { string stringToSign; return GenerateUserDelegationSasUri(builder, userDelegationKey, out stringToSign); } [EditorBrowsable(EditorBrowsableState.Never)] [CallerShouldAudit("https://aka.ms/azsdk/callershouldaudit/storage-blobs")] public virtual Uri GenerateUserDelegationSasUri(BlobSasBuilder builder, UserDelegationKey userDelegationKey, out string stringToSign) { BlobSasBuilder blobSasBuilder = builder; if (blobSasBuilder == null) throw Errors.ArgumentNull("builder"); builder = blobSasBuilder; UserDelegationKey userDelegationKey2 = userDelegationKey; if (userDelegationKey2 == null) throw Errors.ArgumentNull("userDelegationKey"); userDelegationKey = userDelegationKey2; builder = BlobSasBuilder.DeepCopy(builder); SetBuilderAndValidate(builder); if (string.IsNullOrEmpty(AccountName)) throw Errors.SasClientMissingData("AccountName"); return new BlobUriBuilder(Uri, ClientConfiguration.TrimBlobNameSlashes) { Sas = builder.ToSasQueryParameters(userDelegationKey, AccountName, out stringToSign) }.ToUri(); } protected internal virtual BlobServiceClient GetParentBlobServiceClientCore() { if (_parentBlobServiceClient == null) { BlobUriBuilder blobUriBuilder = new BlobUriBuilder(Uri, ClientConfiguration.TrimBlobNameSlashes) { BlobContainerName = null, BlobName = null, VersionId = null, Snapshot = null }; _parentBlobServiceClient = new BlobServiceClient(blobUriBuilder.ToUri(), ClientConfiguration, AuthenticationPolicy, ClientSideEncryption); } return _parentBlobServiceClient; } private void SetBuilderAndValidate(BlobSasBuilder builder) { if (builder.BlobContainerName == null) { string text = builder.BlobContainerName = Name; } if (!builder.BlobContainerName.Equals(Name, StringComparison.InvariantCulture)) throw Errors.SasNamesNotMatching("BlobContainerName", "BlobSasBuilder", "Name"); if (!string.IsNullOrEmpty(builder.BlobName)) throw Errors.SasBuilderEmptyParam("builder", "BlobName", "Name"); } } }