BlobServiceClient
The BlobServiceClient allows you to manipulate Azure
Storage service resources and blob containers. The storage account provides
the top-level namespace for the Blob service.
using Azure.Core;
using Azure.Core.Pipeline;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Common;
using Azure.Storage.Cryptography;
using Azure.Storage.Sas;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Threading;
using System.Threading.Tasks;
namespace Azure.Storage.Blobs
{
public class BlobServiceClient
{
private readonly Uri _uri;
private readonly BlobClientConfiguration _clientConfiguration;
private readonly HttpPipelinePolicy _authenticationPolicy;
private readonly ClientSideEncryptionOptions _clientSideEncryption;
private string _accountName;
private readonly ServiceRestClient _serviceRestClient;
public virtual Uri Uri => _uri;
internal virtual BlobClientConfiguration ClientConfiguration => _clientConfiguration;
internal virtual HttpPipelinePolicy AuthenticationPolicy => _authenticationPolicy;
internal virtual ClientSideEncryptionOptions ClientSideEncryption => _clientSideEncryption;
public string AccountName {
get {
if (_accountName == null)
_accountName = new BlobUriBuilder(Uri).AccountName;
return _accountName;
}
}
public virtual bool CanGenerateAccountSasUri => (object)ClientConfiguration.SharedKeyCredential != null;
internal virtual ServiceRestClient ServiceRestClient => _serviceRestClient;
protected BlobServiceClient()
{
}
public BlobServiceClient(string connectionString)
: this(connectionString, null)
{
}
public BlobServiceClient(string connectionString, BlobClientOptions options)
{
StorageConnectionString storageConnectionString = StorageConnectionString.Parse(connectionString);
_uri = storageConnectionString.BlobEndpoint;
if (options == null)
options = new BlobClientOptions(BlobClientOptions.ServiceVersion.V2025_07_05);
_authenticationPolicy = StorageClientOptions.GetAuthenticationPolicy(storageConnectionString.Credentials, null, null);
_accountName = storageConnectionString.AccountName;
_clientConfiguration = new BlobClientConfiguration(options.Build(_authenticationPolicy), storageConnectionString.Credentials as StorageSharedKeyCredential, new ClientDiagnostics(options, null), options.Version, options.CustomerProvidedKey, options.TransferValidation, options.EncryptionScope, options.TrimBlobNameSlashes);
ClientSideEncryptionOptions clientSideEncryptionOptions = options._clientSideEncryptionOptions;
_clientSideEncryption = ((clientSideEncryptionOptions != null) ? clientSideEncryptionOptions.Clone() : null);
_serviceRestClient = BuildServiceRestClient(_uri);
BlobErrors.VerifyHttpsCustomerProvidedKey(_uri, _clientConfiguration.CustomerProvidedKey);
BlobErrors.VerifyCpkAndEncryptionScopeNotBothSet(_clientConfiguration.CustomerProvidedKey, _clientConfiguration.EncryptionScope);
}
public BlobServiceClient(Uri serviceUri, BlobClientOptions options = null)
: this(serviceUri, null, options ?? new BlobClientOptions(BlobClientOptions.ServiceVersion.V2025_07_05))
{
}
public BlobServiceClient(Uri serviceUri, StorageSharedKeyCredential credential, BlobClientOptions options = null)
: this(serviceUri, credential.AsPolicy(), credential, options ?? new BlobClientOptions(BlobClientOptions.ServiceVersion.V2025_07_05))
{
}
public BlobServiceClient(Uri serviceUri, AzureSasCredential credential, BlobClientOptions options = null)
: this(serviceUri, credential.AsPolicy<BlobUriBuilder>(serviceUri), credential, options ?? new BlobClientOptions(BlobClientOptions.ServiceVersion.V2025_07_05))
{
}
public BlobServiceClient(Uri serviceUri, TokenCredential credential, BlobClientOptions options = null)
{
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 scope;
if (!string.IsNullOrEmpty((string)value)) {
audience = options.Audience;
blobAudience = audience.Value;
scope = blobAudience.CreateDefaultScope();
} else {
blobAudience = BlobAudience.DefaultAudience;
scope = blobAudience.CreateDefaultScope();
}
this..ctor(serviceUri, credential.AsPolicy((string)scope, options), credential, options ?? new BlobClientOptions(BlobClientOptions.ServiceVersion.V2025_07_05));
Errors.VerifyHttpsTokenAuth(serviceUri);
}
internal BlobServiceClient(Uri serviceUri, HttpPipelinePolicy authentication, BlobClientOptions options)
{
BlobClientConfiguration clientConfiguration = new BlobClientConfiguration(options.Build(authentication), null, new ClientDiagnostics(options, null), options?.Version ?? BlobClientOptions.ServiceVersion.V2025_07_05, options?.CustomerProvidedKey, options.TransferValidation, options?.EncryptionScope, options?.TrimBlobNameSlashes ?? false);
object clientSideEncryption;
if (options == null)
clientSideEncryption = null;
else {
ClientSideEncryptionOptions clientSideEncryptionOptions = options._clientSideEncryptionOptions;
clientSideEncryption = ((clientSideEncryptionOptions != null) ? clientSideEncryptionOptions.Clone() : null);
}
this..ctor(serviceUri, clientConfiguration, authentication, clientSideEncryption);
}
internal BlobServiceClient(Uri serviceUri, HttpPipelinePolicy authentication, StorageSharedKeyCredential storageSharedKeyCredential, BlobClientOptions options)
{
BlobClientConfiguration clientConfiguration = new BlobClientConfiguration(options.Build(authentication), storageSharedKeyCredential, new ClientDiagnostics(options, null), options?.Version ?? BlobClientOptions.ServiceVersion.V2025_07_05, options?.CustomerProvidedKey, options.TransferValidation, options?.EncryptionScope, options?.TrimBlobNameSlashes ?? false);
object clientSideEncryption;
if (options == null)
clientSideEncryption = null;
else {
ClientSideEncryptionOptions clientSideEncryptionOptions = options._clientSideEncryptionOptions;
clientSideEncryption = ((clientSideEncryptionOptions != null) ? clientSideEncryptionOptions.Clone() : null);
}
this..ctor(serviceUri, clientConfiguration, authentication, clientSideEncryption);
if (_accountName == null)
_accountName = ((storageSharedKeyCredential != null) ? storageSharedKeyCredential.get_AccountName() : null);
}
internal BlobServiceClient(Uri serviceUri, HttpPipelinePolicy authentication, TokenCredential tokenCredential, BlobClientOptions options)
{
BlobClientConfiguration clientConfiguration = new BlobClientConfiguration(options.Build(authentication), tokenCredential, new ClientDiagnostics(options, null), options?.Version ?? BlobClientOptions.ServiceVersion.V2025_07_05, options?.CustomerProvidedKey, options.TransferValidation, options?.EncryptionScope, options?.TrimBlobNameSlashes ?? false);
object clientSideEncryption;
if (options == null)
clientSideEncryption = null;
else {
ClientSideEncryptionOptions clientSideEncryptionOptions = options._clientSideEncryptionOptions;
clientSideEncryption = ((clientSideEncryptionOptions != null) ? clientSideEncryptionOptions.Clone() : null);
}
this..ctor(serviceUri, clientConfiguration, authentication, clientSideEncryption);
}
internal BlobServiceClient(Uri serviceUri, HttpPipelinePolicy authentication, AzureSasCredential sasCredential, BlobClientOptions options)
{
BlobClientConfiguration clientConfiguration = new BlobClientConfiguration(options.Build(authentication), sasCredential, new ClientDiagnostics(options, null), options?.Version ?? BlobClientOptions.ServiceVersion.V2025_07_05, options?.CustomerProvidedKey, options.TransferValidation, options?.EncryptionScope, options?.TrimBlobNameSlashes ?? false);
object clientSideEncryption;
if (options == null)
clientSideEncryption = null;
else {
ClientSideEncryptionOptions clientSideEncryptionOptions = options._clientSideEncryptionOptions;
clientSideEncryption = ((clientSideEncryptionOptions != null) ? clientSideEncryptionOptions.Clone() : null);
}
this..ctor(serviceUri, clientConfiguration, authentication, clientSideEncryption);
}
internal BlobServiceClient(Uri serviceUri, BlobClientConfiguration clientConfiguration, HttpPipelinePolicy authentication, ClientSideEncryptionOptions clientSideEncryption)
{
Argument.AssertNotNull(serviceUri, "serviceUri");
_uri = serviceUri;
_clientConfiguration = clientConfiguration;
_authenticationPolicy = authentication;
_clientSideEncryption = ((clientSideEncryption != null) ? clientSideEncryption.Clone() : null);
_serviceRestClient = BuildServiceRestClient(serviceUri);
BlobErrors.VerifyCpkAndEncryptionScopeNotBothSet(_clientConfiguration.CustomerProvidedKey, _clientConfiguration.EncryptionScope);
BlobErrors.VerifyHttpsCustomerProvidedKey(_uri, _clientConfiguration.CustomerProvidedKey);
}
protected static BlobServiceClient (Uri serviceUri, BlobClientOptions options, HttpPipelinePolicy authentication, HttpPipeline pipeline, StorageSharedKeyCredential sharedKeyCredential, AzureSasCredential sasCredential, TokenCredential tokenCredential)
{
return new BlobServiceClient(serviceUri, new BlobClientConfiguration(pipeline, sharedKeyCredential, tokenCredential, sasCredential, new ClientDiagnostics(options, null), options.Version, null, options.TransferValidation, null, options.TrimBlobNameSlashes), authentication, null);
}
[EditorBrowsable(EditorBrowsableState.Never)]
protected static BlobServiceClient CreateClient(Uri serviceUri, BlobClientOptions options, HttpPipelinePolicy authentication, HttpPipeline pipeline)
{
return new BlobServiceClient(serviceUri, new BlobClientConfiguration(pipeline, null, new ClientDiagnostics(options, null), options.Version, (CustomerProvidedKey?)null, options.TransferValidation, (string)null, options.TrimBlobNameSlashes), authentication, null);
}
private ServiceRestClient BuildServiceRestClient(Uri uri)
{
return new ServiceRestClient(_clientConfiguration.ClientDiagnostics, _clientConfiguration.Pipeline, uri.AbsoluteUri, _clientConfiguration.Version.ToVersionString());
}
public virtual BlobContainerClient GetBlobContainerClient(string blobContainerName)
{
return new BlobContainerClient(Uri.AppendToPath(blobContainerName), ClientConfiguration, AuthenticationPolicy, ClientSideEncryption);
}
protected static HttpPipeline GetHttpPipeline(BlobServiceClient client)
{
return client.ClientConfiguration.Pipeline;
}
protected static HttpPipelinePolicy GetAuthenticationPolicy(BlobServiceClient client)
{
return client.AuthenticationPolicy;
}
protected static BlobClientOptions GetClientOptions(BlobServiceClient client)
{
BlobClientOptions blobClientOptions = new BlobClientOptions(client.ClientConfiguration.Version);
blobClientOptions.get_Diagnostics().set_IsDistributedTracingEnabled(client.ClientConfiguration.ClientDiagnostics.IsActivityEnabled);
return blobClientOptions;
}
public virtual Pageable<BlobContainerItem> GetBlobContainers(BlobContainerTraits traits = BlobContainerTraits.None, BlobContainerStates states = BlobContainerStates.None, string prefix = null, CancellationToken cancellationToken = default(CancellationToken))
{
return new GetBlobContainersAsyncCollection(this, traits, states, prefix).ToSyncCollection(cancellationToken);
}
[EditorBrowsable(EditorBrowsableState.Never)]
public virtual Pageable<BlobContainerItem> GetBlobContainers(BlobContainerTraits traits, string prefix, CancellationToken cancellationToken)
{
return new GetBlobContainersAsyncCollection(this, traits, BlobContainerStates.None, prefix).ToSyncCollection(cancellationToken);
}
public virtual AsyncPageable<BlobContainerItem> GetBlobContainersAsync(BlobContainerTraits traits = BlobContainerTraits.None, BlobContainerStates states = BlobContainerStates.None, string prefix = null, CancellationToken cancellationToken = default(CancellationToken))
{
return new GetBlobContainersAsyncCollection(this, traits, states, prefix).ToAsyncCollection(cancellationToken);
}
[EditorBrowsable(EditorBrowsableState.Never)]
public virtual AsyncPageable<BlobContainerItem> GetBlobContainersAsync(BlobContainerTraits traits, string prefix, CancellationToken cancellationToken)
{
return new GetBlobContainersAsyncCollection(this, traits, BlobContainerStates.None, prefix).ToAsyncCollection(cancellationToken);
}
[AsyncStateMachine(typeof(<GetBlobContainersInternal>d__43))]
internal Task<Response<ListContainersSegmentResponse>> GetBlobContainersInternal(string continuationToken, BlobContainerTraits traits, BlobContainerStates states, string prefix, int? pageSizeHint, bool async, CancellationToken cancellationToken)
{
<GetBlobContainersInternal>d__43 stateMachine = default(<GetBlobContainersInternal>d__43);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<ListContainersSegmentResponse>>.Create();
stateMachine.<>4__this = this;
stateMachine.continuationToken = continuationToken;
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 Response<AccountInfo> GetAccountInfo(CancellationToken cancellationToken = default(CancellationToken))
{
return GetAccountInfoInternal(false, cancellationToken).EnsureCompleted();
}
[AsyncStateMachine(typeof(<GetAccountInfoAsync>d__45))]
public virtual Task<Response<AccountInfo>> GetAccountInfoAsync(CancellationToken cancellationToken = default(CancellationToken))
{
<GetAccountInfoAsync>d__45 stateMachine = default(<GetAccountInfoAsync>d__45);
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__46))]
private Task<Response<AccountInfo>> GetAccountInfoInternal(bool async, CancellationToken cancellationToken)
{
<GetAccountInfoInternal>d__46 stateMachine = default(<GetAccountInfoInternal>d__46);
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;
}
public virtual Response<BlobServiceProperties> GetProperties(CancellationToken cancellationToken = default(CancellationToken))
{
return GetPropertiesInternal(false, cancellationToken).EnsureCompleted();
}
[AsyncStateMachine(typeof(<GetPropertiesAsync>d__48))]
public virtual Task<Response<BlobServiceProperties>> GetPropertiesAsync(CancellationToken cancellationToken = default(CancellationToken))
{
<GetPropertiesAsync>d__48 stateMachine = default(<GetPropertiesAsync>d__48);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobServiceProperties>>.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(<GetPropertiesInternal>d__49))]
private Task<Response<BlobServiceProperties>> GetPropertiesInternal(bool async, CancellationToken cancellationToken)
{
<GetPropertiesInternal>d__49 stateMachine = default(<GetPropertiesInternal>d__49);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobServiceProperties>>.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 Response SetProperties(BlobServiceProperties properties, CancellationToken cancellationToken = default(CancellationToken))
{
return SetPropertiesInternal(properties, false, cancellationToken).EnsureCompleted();
}
[AsyncStateMachine(typeof(<SetPropertiesAsync>d__51))]
[CallerShouldAudit("https://aka.ms/azsdk/callershouldaudit/storage-blobs")]
public virtual Task<Response> SetPropertiesAsync(BlobServiceProperties properties, CancellationToken cancellationToken = default(CancellationToken))
{
<SetPropertiesAsync>d__51 stateMachine = default(<SetPropertiesAsync>d__51);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response>.Create();
stateMachine.<>4__this = this;
stateMachine.properties = properties;
stateMachine.cancellationToken = cancellationToken;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
[AsyncStateMachine(typeof(<SetPropertiesInternal>d__52))]
private Task<Response> SetPropertiesInternal(BlobServiceProperties properties, bool async, CancellationToken cancellationToken)
{
<SetPropertiesInternal>d__52 stateMachine = default(<SetPropertiesInternal>d__52);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response>.Create();
stateMachine.<>4__this = this;
stateMachine.properties = properties;
stateMachine.async = async;
stateMachine.cancellationToken = cancellationToken;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
public virtual Response<BlobServiceStatistics> GetStatistics(CancellationToken cancellationToken = default(CancellationToken))
{
return GetStatisticsInternal(false, cancellationToken).EnsureCompleted();
}
[AsyncStateMachine(typeof(<GetStatisticsAsync>d__54))]
public virtual Task<Response<BlobServiceStatistics>> GetStatisticsAsync(CancellationToken cancellationToken = default(CancellationToken))
{
<GetStatisticsAsync>d__54 stateMachine = default(<GetStatisticsAsync>d__54);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobServiceStatistics>>.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(<GetStatisticsInternal>d__55))]
private Task<Response<BlobServiceStatistics>> GetStatisticsInternal(bool async, CancellationToken cancellationToken)
{
<GetStatisticsInternal>d__55 stateMachine = default(<GetStatisticsInternal>d__55);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobServiceStatistics>>.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 Response<UserDelegationKey> GetUserDelegationKey(DateTimeOffset? startsOn, DateTimeOffset expiresOn, CancellationToken cancellationToken = default(CancellationToken))
{
return GetUserDelegationKeyInternal(startsOn, expiresOn, false, cancellationToken).EnsureCompleted();
}
[AsyncStateMachine(typeof(<GetUserDelegationKeyAsync>d__57))]
[CallerShouldAudit("https://aka.ms/azsdk/callershouldaudit/storage-blobs")]
public virtual Task<Response<UserDelegationKey>> GetUserDelegationKeyAsync(DateTimeOffset? startsOn, DateTimeOffset expiresOn, CancellationToken cancellationToken = default(CancellationToken))
{
<GetUserDelegationKeyAsync>d__57 stateMachine = default(<GetUserDelegationKeyAsync>d__57);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<UserDelegationKey>>.Create();
stateMachine.<>4__this = this;
stateMachine.startsOn = startsOn;
stateMachine.expiresOn = expiresOn;
stateMachine.cancellationToken = cancellationToken;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
[AsyncStateMachine(typeof(<GetUserDelegationKeyInternal>d__58))]
private Task<Response<UserDelegationKey>> GetUserDelegationKeyInternal(DateTimeOffset? startsOn, DateTimeOffset expiresOn, bool async, CancellationToken cancellationToken)
{
<GetUserDelegationKeyInternal>d__58 stateMachine = default(<GetUserDelegationKeyInternal>d__58);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<UserDelegationKey>>.Create();
stateMachine.<>4__this = this;
stateMachine.startsOn = startsOn;
stateMachine.expiresOn = expiresOn;
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<BlobContainerClient> CreateBlobContainer(string blobContainerName, PublicAccessType publicAccessType = PublicAccessType.None, IDictionary<string, string> metadata = null, CancellationToken cancellationToken = default(CancellationToken))
{
BlobContainerClient blobContainerClient = GetBlobContainerClient(blobContainerName);
Response<BlobContainerInfo> val = blobContainerClient.Create(publicAccessType, metadata, cancellationToken);
return Response.FromValue<BlobContainerClient>(blobContainerClient, val.GetRawResponse());
}
[AsyncStateMachine(typeof(<CreateBlobContainerAsync>d__60))]
[ForwardsClientCalls]
public virtual Task<Response<BlobContainerClient>> CreateBlobContainerAsync(string blobContainerName, PublicAccessType publicAccessType = PublicAccessType.None, IDictionary<string, string> metadata = null, CancellationToken cancellationToken = default(CancellationToken))
{
<CreateBlobContainerAsync>d__60 stateMachine = default(<CreateBlobContainerAsync>d__60);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerClient>>.Create();
stateMachine.<>4__this = this;
stateMachine.blobContainerName = blobContainerName;
stateMachine.publicAccessType = publicAccessType;
stateMachine.metadata = metadata;
stateMachine.cancellationToken = cancellationToken;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
[ForwardsClientCalls]
public virtual Response DeleteBlobContainer(string blobContainerName, BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken))
{
return GetBlobContainerClient(blobContainerName).Delete(conditions, cancellationToken);
}
[AsyncStateMachine(typeof(<DeleteBlobContainerAsync>d__62))]
[ForwardsClientCalls]
public virtual Task<Response> DeleteBlobContainerAsync(string blobContainerName, BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken))
{
<DeleteBlobContainerAsync>d__62 stateMachine = default(<DeleteBlobContainerAsync>d__62);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response>.Create();
stateMachine.<>4__this = this;
stateMachine.blobContainerName = blobContainerName;
stateMachine.conditions = conditions;
stateMachine.cancellationToken = cancellationToken;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
public virtual Response<BlobContainerClient> UndeleteBlobContainer(string deletedContainerName, string deletedContainerVersion, CancellationToken cancellationToken = default(CancellationToken))
{
return UndeleteBlobContainerInternal(deletedContainerName, deletedContainerVersion, deletedContainerName, false, cancellationToken).EnsureCompleted();
}
[AsyncStateMachine(typeof(<UndeleteBlobContainerAsync>d__64))]
public virtual Task<Response<BlobContainerClient>> UndeleteBlobContainerAsync(string deletedContainerName, string deletedContainerVersion, CancellationToken cancellationToken = default(CancellationToken))
{
<UndeleteBlobContainerAsync>d__64 stateMachine = default(<UndeleteBlobContainerAsync>d__64);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerClient>>.Create();
stateMachine.<>4__this = this;
stateMachine.deletedContainerName = deletedContainerName;
stateMachine.deletedContainerVersion = deletedContainerVersion;
stateMachine.cancellationToken = cancellationToken;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
[EditorBrowsable(EditorBrowsableState.Never)]
public virtual Response<BlobContainerClient> UndeleteBlobContainer(string deletedContainerName, string deletedContainerVersion, string destinationContainerName, CancellationToken cancellationToken = default(CancellationToken))
{
return UndeleteBlobContainerInternal(deletedContainerName, deletedContainerVersion, destinationContainerName, false, cancellationToken).EnsureCompleted();
}
[AsyncStateMachine(typeof(<UndeleteBlobContainerAsync>d__66))]
[EditorBrowsable(EditorBrowsableState.Never)]
public virtual Task<Response<BlobContainerClient>> UndeleteBlobContainerAsync(string deletedContainerName, string deletedContainerVersion, string destinationContainerName, CancellationToken cancellationToken = default(CancellationToken))
{
<UndeleteBlobContainerAsync>d__66 stateMachine = default(<UndeleteBlobContainerAsync>d__66);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerClient>>.Create();
stateMachine.<>4__this = this;
stateMachine.deletedContainerName = deletedContainerName;
stateMachine.deletedContainerVersion = deletedContainerVersion;
stateMachine.destinationContainerName = destinationContainerName;
stateMachine.cancellationToken = cancellationToken;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
[AsyncStateMachine(typeof(<UndeleteBlobContainerInternal>d__67))]
internal Task<Response<BlobContainerClient>> UndeleteBlobContainerInternal(string deletedContainerName, string deletedContainerVersion, string destinationContainerName, bool async, CancellationToken cancellationToken)
{
<UndeleteBlobContainerInternal>d__67 stateMachine = default(<UndeleteBlobContainerInternal>d__67);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerClient>>.Create();
stateMachine.<>4__this = this;
stateMachine.deletedContainerName = deletedContainerName;
stateMachine.deletedContainerVersion = deletedContainerVersion;
stateMachine.destinationContainerName = destinationContainerName;
stateMachine.async = async;
stateMachine.cancellationToken = cancellationToken;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
internal virtual Response<BlobContainerClient> RenameBlobContainer(string sourceContainerName, string destinationContainerName, BlobRequestConditions sourceConditions = null, CancellationToken cancellationToken = default(CancellationToken))
{
return RenameBlobContainerInternal(sourceContainerName, destinationContainerName, sourceConditions, false, cancellationToken).EnsureCompleted();
}
[AsyncStateMachine(typeof(<RenameBlobContainerAsync>d__69))]
internal virtual Task<Response<BlobContainerClient>> RenameBlobContainerAsync(string sourceContainerName, string destinationContainerName, BlobRequestConditions sourceConditions = null, CancellationToken cancellationToken = default(CancellationToken))
{
<RenameBlobContainerAsync>d__69 stateMachine = default(<RenameBlobContainerAsync>d__69);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerClient>>.Create();
stateMachine.<>4__this = this;
stateMachine.sourceContainerName = sourceContainerName;
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(<RenameBlobContainerInternal>d__70))]
internal Task<Response<BlobContainerClient>> RenameBlobContainerInternal(string sourceContainerName, string destinationContainerName, BlobRequestConditions sourceConditions, bool async, CancellationToken cancellationToken)
{
<RenameBlobContainerInternal>d__70 stateMachine = default(<RenameBlobContainerInternal>d__70);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Response<BlobContainerClient>>.Create();
stateMachine.<>4__this = this;
stateMachine.sourceContainerName = sourceContainerName;
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__73))]
internal Task<Response<FilterBlobSegment>> FindBlobsByTagsInternal(string marker, string expression, int? pageSizeHint, bool async, CancellationToken cancellationToken)
{
<FindBlobsByTagsInternal>d__73 stateMachine = default(<FindBlobsByTagsInternal>d__73);
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;
}
[CallerShouldAudit("https://aka.ms/azsdk/callershouldaudit/storage-blobs")]
public Uri GenerateAccountSasUri(AccountSasPermissions permissions, DateTimeOffset expiresOn, AccountSasResourceTypes resourceTypes)
{
string stringToSign;
return GenerateAccountSasUri(permissions, expiresOn, resourceTypes, out stringToSign);
}
[EditorBrowsable(EditorBrowsableState.Never)]
[CallerShouldAudit("https://aka.ms/azsdk/callershouldaudit/storage-blobs")]
public Uri GenerateAccountSasUri(AccountSasPermissions permissions, DateTimeOffset expiresOn, AccountSasResourceTypes resourceTypes, out string stringToSign)
{
return GenerateAccountSasUri(new AccountSasBuilder(permissions, expiresOn, 1, resourceTypes), out stringToSign);
}
[CallerShouldAudit("https://aka.ms/azsdk/callershouldaudit/storage-blobs")]
public Uri GenerateAccountSasUri(AccountSasBuilder builder)
{
string stringToSign;
return GenerateAccountSasUri(builder, out stringToSign);
}
[EditorBrowsable(EditorBrowsableState.Never)]
[CallerShouldAudit("https://aka.ms/azsdk/callershouldaudit/storage-blobs")]
public Uri GenerateAccountSasUri(AccountSasBuilder builder, out string stringToSign)
{
AccountSasBuilder obj = builder;
if (obj == null)
throw Errors.ArgumentNull("builder");
builder = obj;
if (!((Enum)builder.get_Services()).HasFlag((Enum)(object)1))
throw Errors.SasServiceNotMatching("Services", "builder", "Blobs");
return new UriBuilder(Uri) {
Query = ((object)builder.ToSasQueryParameters(ClientConfiguration.SharedKeyCredential, ref stringToSign)).ToString()
}.Uri;
}
}
}