gpt4 book ai didi

c# - 在 Azure 应用程序中为两个存储帐户设置依赖项注入(inject)

转载 作者:行者123 更新时间:2023-12-02 06:35:07 25 4
gpt4 key购买 nike

我有一个应用程序,我想引用两个不同的存储帐户(SA1 和 SA2),它们分别有一个容器,每个“container1”和“container2”。我对两者都有以下 DI 设置(不确定这是否正确)

        serviceCollection.AddAzureClients(builder =>
{
builder.AddBlobServiceClient("SA1_connectionStr"))
.WithVersion(BlobClientOptions.ServiceVersion.V2019_02_02);

builder.AddBlobServiceClient("SA2_connectionStr"))
.WithVersion(BlobClientOptions.ServiceVersion.V2019_02_02);

});

当我使用“blobContainer”引用(使用下面的代码)时,它仅引用“SA2”storgaeAccount 中的容器(可能是因为它是在 DI 设置中最后添加的)

 private readonly BlobServiceClient blobServiceClient;
var blobContainer = blobServiceClient.GetBlobContainerClient(container2);

如何分别引用 storageAccount SA1 和 storageAccount SA2?

最佳答案

您需要为客户命名以区分它们:

   serviceCollection.AddAzureClients(builder =>
{
builder.AddBlobServiceClient("SA1_connectionStr"))
.WithName("SA1")
.WithVersion(BlobClientOptions.ServiceVersion.V2019_02_02);

builder.AddBlobServiceClient("SA2_connectionStr"))
.WithName("SA2")
.WithVersion(BlobClientOptions.ServiceVersion.V2019_02_02);

});

然后你可以通过注入(inject)来访问它们:

IAzureClientFactory<BlobServiceClient> clientFactory

进入你的构造函数,然后

_sa1Client = clientFactory.CreateClient("SA1");
_sa2Client = clientFactory.CreateClient("SA2");

然后使用这些客户端与不同的容器实际交互。

您可以查看official documentation for this here.

关于c# - 在 Azure 应用程序中为两个存储帐户设置依赖项注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76920902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com