问题描述
在 Microsoft.WindowsAzure.Storage(用于 .NET 的旧版 Azure SDK)中,我们可以将 BlobClient 的重试策略设置为 IRetryPolicy,如下所示:
var blobClient = this.storageAccount.CreateCloudBlobClient();
blobClient.DefaultRequestOptions.RetryPolicy = TransientFactory.GetStorageRetryPolicy().AsAzureStorageClientRetryPolicy();
但是,在新版本的SDK中,直接创建BlobClients,无需通过CloudStorageAccount,我们该怎么做?
var blobClientOptions = new BlobClientOptions();
blobClientOptions.Retry.MaxRetries = 4;
var blobServiceClient = new BlobServiceClient("connection_string",options: blobClientOptions);
是否可以在 BlobClient 或 BlobServiceClient 上设置 RetryPolicy 而不是手动设置重试参数?
解决方法
您发布的用法正是我们使用的方式。我们可以在两个位置设置重试策略。
一种是您发布的方式:在创建 blob 客户端时设置重试策略。
创建BlobServiceClient
时设置重试策略:
var blobServiceClient = new BlobServiceClient
(connectionString:storageAccountConnectionString,options: blobClientOptions);
关注here。