AzureClientFactory BlobServiceClient Variables

3 days ago 8
ARTICLE AD BOX

I couldn't find a complete working example of uploading a file to Azure Blob with .NET Core, so I'm confused with the different snippets that I saw. This is what my code looks like:

My Secrets:

{ "ConnectionStrings:DatabaseConnection": Server=tcp:xxx.database.windows.net;Authentication=Active Directory Default;Initial Catalog=xxxdatabase;", "StorageConnection:blobServiceUri": "https://xxxxxxxx.blob.core.windows.net/", "StorageConnection:queueServiceUri": "https://xxxxxxxx.queue.core.windows.net/", "StorageConnection:tableServiceUri": "https://xxxxxxxx.table.core.windows.net/"

I have the standard AzureClientFactoryBuilderExtensions.cs that VS creates when you add Azure Storage to the connected services.

I have the Azure Client Service in Program.cs:

builder.Services.AddAzureClients(clientBuilder => { clientBuilder.AddBlobServiceClient(builder.Configuration["StorageConnection:blobServiceUri"]!).WithName("StorageConnection"); clientBuilder.AddQueueServiceClient(builder.Configuration["StorageConnection:queueServiceUri"]!).WithName("StorageConnection"); clientBuilder.AddTableServiceClient(builder.Configuration["StorageConnection:tableServiceUri"]!).WithName("StorageConnection"); });

In the controller I have:

private readonly IAzureClientFactory<BlobServiceClient> _blobClientFactory; public ClientDocumentsController(FileUploadContext context, IAzureClientFactory<BlobServiceClient> blobClientFactory) { _context = context; _blobClientFactory = blobClientFactory; }

Then in a task I have:

BlobServiceClient blobServiceClient = _blobClientFactory.CreateClient("ClientName??"); var containerClient = blobServiceClient.GetBlobContainerClient("myContainer"); var valueContainer = await containerClient.CreateIfNotExistsAsync(); var blobClient = containerClient.GetBlobClient(file.FileName); var valueUpload = await blobClient.UploadAsync(file.OpenReadStream());

As I understand it, I would replacer myContainer with the actual Azure container's name. But in CreateClient, with what do I replace ClientName?? with?

If I enter a random name, I get this error: "System.InvalidOperationException: 'Unable to find client registration with type 'BlobServiceClient' and name 'RandomName'.'" I tried the blob and the container's name.

Any help is appreciated. Including a link to any Microsoft or other repo with a working example that uses AzureClientFactoryBuilderExtensions.

Thank you!

P.S. We need a Azure-Client-Factory tag.

Read Entire Article