适用于 .NET 的 Azure 存储 SDK:如何在新的 Blob 存储库上设置 RetryPolicy?

问题描述

在 Microsoft.WindowsAzure.Storage(用于 .NET 的旧版 Azure SDK)中,我们可以将 BlobClient 的重试策略设置为 IRetryPolicy,如下所示:

var blobClient = this.storageAccount.CreateCloudBlobClient();    
blobClient.DefaultRequestOptions.RetryPolicy = TransientFactory.GetStorageRetryPolicy().AsAzureStorageClientRetryPolicy();

但是,在新版本的SDK中,直接创建BlobClients,无需通过CloudStorageAccount,我们该怎么做?

我能够使用 docs 的最远方法是手动设置最大重试次数

 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