应该如何创建 BlobServiceClient?
How should BlobServiceClient be created?
BlobServiceClient 应该以类似 HttpClient 的模式创建,作为一个有效的单例,还是应该按请求完成?
我的直觉表明它应该是一个单例,但我找不到任何明确的暗示。我目前有一些这样的代码:
public class MyAzureThing
{
private readonly BlobServiceClient blobServiceClient;
public MyAzureThing(Uri baseUri)
{
blobServiceClient = new BlobServiceClient(baseUri, new DefaultAzureCredential());
}
public async Task CreateContainerAsync(string name)
{
var containerClient = blobServiceClient.GetBlobContainerClient(name);
// other logic....
}
}
我的假设是,这是首选的做法,BlobServiceClient 是在此范围内创建的,而我的容器客户端是在我需要时创建的。谁能指出这是最佳实践还是某种反模式?
似乎建议 Azure SDK 客户端 v12 应该是单例。所有实例显然都是线程安全的:https://devblogs.microsoft.com/azure-sdk/lifetime-management-and-thread-safety-guarantees-of-azure-sdk-net-clients/
BlobServiceClient 应该以类似 HttpClient 的模式创建,作为一个有效的单例,还是应该按请求完成?
我的直觉表明它应该是一个单例,但我找不到任何明确的暗示。我目前有一些这样的代码:
public class MyAzureThing
{
private readonly BlobServiceClient blobServiceClient;
public MyAzureThing(Uri baseUri)
{
blobServiceClient = new BlobServiceClient(baseUri, new DefaultAzureCredential());
}
public async Task CreateContainerAsync(string name)
{
var containerClient = blobServiceClient.GetBlobContainerClient(name);
// other logic....
}
}
我的假设是,这是首选的做法,BlobServiceClient 是在此范围内创建的,而我的容器客户端是在我需要时创建的。谁能指出这是最佳实践还是某种反模式?
似乎建议 Azure SDK 客户端 v12 应该是单例。所有实例显然都是线程安全的:https://devblogs.microsoft.com/azure-sdk/lifetime-management-and-thread-safety-guarantees-of-azure-sdk-net-clients/