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

StorageClientOptions

static class StorageClientOptions
Defines the client configuration options for connecting to Azure Storage.
using Azure.Core; using Azure.Core.Pipeline; using Azure.Storage.Common; using Azure.Storage.Shared; using System; namespace Azure.Storage { internal static class StorageClientOptions { private const string StorageScope = "https://storage.azure.com/.default"; public static void Initialize(this ClientOptions options) { options.get_Retry().set_MaxRetries(5); } public static HttpPipelinePolicy AsPolicy(this StorageSharedKeyCredential credential) { if (credential == null) throw Errors.ArgumentNull("credential"); return new StorageSharedKeyPipelinePolicy(credential); } public static HttpPipelinePolicy AsPolicy<TUriBuilder>(this AzureSasCredential credential, Uri resourceUri) { Argument.AssertNotNull(resourceUri, "resourceUri"); Argument.AssertNotNull<AzureSasCredential>(credential, "credential"); if (resourceUri.GetQueryParameters().ContainsKey("sig")) throw Errors.SasCredentialRequiresUriWithoutSas<TUriBuilder>(resourceUri); return new AzureSasCredentialSynchronousPolicy(credential); } public static HttpPipelinePolicy AsPolicy(this TokenCredential credential, string scope, ClientOptions options) { if (credential == null) throw Errors.ArgumentNull("credential"); return new StorageBearerTokenChallengeAuthorizationPolicy(credential, scope ?? "https://storage.azure.com/.default", (options as ISupportsTenantIdChallenges)?.EnableTenantDiscovery ?? false); } public static HttpPipelinePolicy GetAuthenticationPolicy(object credentials = null, string scope = null, ClientOptions options = null) { if (credentials is SharedAccessSignatureCredentials || credentials == null) return null; StorageSharedKeyCredential val = credentials as StorageSharedKeyCredential; if (val != null) return val.AsPolicy(); TokenCredential val2 = credentials as TokenCredential; if (val2 != null) return val2.AsPolicy(scope, options); AzureSasCredential val3 = credentials as AzureSasCredential; if (val3 != null) return new AzureSasCredentialSynchronousPolicy(val3); throw Errors.InvalidCredentials(credentials.GetType().FullName); } public static HttpPipeline Build(this ClientOptions options, HttpPipelinePolicy authentication = null, Uri geoRedundantSecondaryStorageUri = null, Request100ContinueOptions expectContinue = null) { StorageResponseClassifier storageResponseClassifier = new StorageResponseClassifier(); HttpPipelineOptions val = new HttpPipelineOptions(options); val.get_PerCallPolicies().Add(StorageServerTimeoutPolicy.Shared); val.get_PerRetryPolicies().Add(StorageTelemetryPolicy.Shared); val.set_ResponseClassifier(storageResponseClassifier); val.set_RequestFailedDetailsParser(new StorageRequestFailedDetailsParser()); HttpPipelineOptions val2 = val; if (geoRedundantSecondaryStorageUri != (Uri)null) { val2.get_PerRetryPolicies().Add(new GeoRedundantReadPolicy(geoRedundantSecondaryStorageUri)); storageResponseClassifier.SecondaryStorageUri = geoRedundantSecondaryStorageUri; } if (expectContinue != null) { Request100ContinueMode mode = expectContinue.get_Mode(); switch ((int)mode) { case 0: val2.get_PerCallPolicies().Add(new ExpectContinueOnThrottlePolicy { ThrottleInterval = expectContinue.get_AutoInterval(), ContentLengthThreshold = expectContinue.get_ContentLengthThreshold().GetValueOrDefault() }); break; case 1: val2.get_PerCallPolicies().Add(new ExpectContinuePolicy { ContentLengthThreshold = expectContinue.get_ContentLengthThreshold().GetValueOrDefault() }); break; } } else val2.get_PerCallPolicies().Add(new ExpectContinueOnThrottlePolicy { ThrottleInterval = TimeSpan.FromMinutes(1) }); val2.get_PerRetryPolicies().Add(new StorageRequestValidationPipelinePolicy()); val2.get_PerRetryPolicies().Add(authentication); return HttpPipelineBuilder.Build(val2); } public static HttpPipeline Build(this ClientOptions options, object credentials, Uri geoRedundantSecondaryStorageUri = null, Request100ContinueOptions expectContinue = null) { return options.Build(GetAuthenticationPolicy(credentials, null, null), geoRedundantSecondaryStorageUri, expectContinue); } } }