public BlobContainerClient CreateStorageClient(BlobContainerClientOptions options, IAzureCredentialProvider provider = null) { EnsureArg.IsNotNull(options); var containerUri = EnsureArg.IsNotNull(options.BlobStorageContainerUri, nameof(options.BlobStorageContainerUri)); var blobUri = new BlobUriBuilder(containerUri); if (options.AuthenticationType == AuthenticationType.ManagedIdentity) { var tokenCredential = new DefaultAzureCredential(); return(new BlobContainerClient(containerUri, tokenCredential)); } else if (options.AuthenticationType == AuthenticationType.ConnectionString) { EnsureArg.IsNotNull(options.ConnectionString, nameof(options.ConnectionString)); EnsureArg.IsNotNull(blobUri.BlobContainerName); return(new BlobContainerClient(options.ConnectionString, blobUri.BlobContainerName)); } else if (options.AuthenticationType == AuthenticationType.Custom) { EnsureArg.IsNotNull(provider); var tokenCredential = provider.GetCredential(); return(new BlobContainerClient(containerUri, tokenCredential)); } else { var ex = $"Unable to create blob container client for {blobUri}."; var message = "No authentication type was specified for BlobContainerClientOptions"; throw new Exception($"{ex} {message}"); } }
public BlobContainerClient CreateStorageClient(BlobContainerClientOptions options, IAzureCredentialProvider provider) { EnsureArg.IsNotNull(options); var containerUri = EnsureArg.IsNotNull(options.BlobStorageContainerUri); var tokenCredential = provider.GetCredential(); return(new BlobContainerClient(containerUri, tokenCredential)); }
public BlobContainerClient CreateStorageClient(BlobContainerClientOptions options) { EnsureArg.IsNotNull(options); var containerUri = EnsureArg.IsNotNull(options.BlobStorageContainerUri); var blobUri = new BlobUriBuilder(containerUri); if (options.ServiceManagedIdentityAuth) { var tokenCredential = new DefaultAzureCredential(); return(new BlobContainerClient(containerUri, tokenCredential)); } else if (!string.IsNullOrEmpty(options.ConnectionString)) { return(new BlobContainerClient(containerUri.ToString(), blobUri.BlobContainerName)); } else { throw new Exception($"Unable to create blob container client for {blobUri}"); } }