Как установить политику повтора для операции хранения больших двоичных объектов Azure с использованием сборки Azure .Storage.Blobs? - PullRequest
2 голосов
/ 04 марта 2020

Использование самой последней версии ( 12.3.0 на момент написания) Nuget для сборки Azure .Storage.Blobs и загрузка асинхронно с классом BlobServiceClient я хочу установить параметры повтора в случае кратковременного сбоя.

Но без перегрузки метода UploadAsync() принимает любой объект с параметрами повтора:

UploadAsync(Stream, BlobHttpHeaders, IDictionary<String,String>, BlobRequestConditions, IProgress<Int64>, Nullable<AccessTier>, StorageTransferOptions, CancellationToken)

И хотя при создании BlobServiceClient можно установить BlobClientOptions, и они наследуют поле RetryOptions от абстрактного базового класса ClientOptions, это поле доступно только для чтения:

    // Summary:
    // Gets the client retry options.
    public RetryOptions Retry { get; }

Как установить политику повторных попыток для операции хранения больших двоичных объектов Azure с использованием сборки Azure.Storage.Blobs?

1 Ответ

3 голосов
/ 04 марта 2020

Вы должны указать часть повтора при создании клиента BLOB-объекта. Вот пример:

    var options = new BlobClientOptions();
    options.Diagnostics.IsLoggingEnabled = false;
    options.Diagnostics.IsTelemetryEnabled = false;
    options.Diagnostics.IsDistributedTracingEnabled = false;
    options.Retry.MaxRetries = 0;

    var client = new BlobClient(blobUri: new Uri(uriString:""), options: options);

Кроме того, можно установить BlobClientOptions при создании BlobServiceClient:

var blobServiceClient = new BlobServiceClient
(connectionString:storageAccountConnectionString, options: blobClientOptions);

Затем можно использовать BlobServiceClient.GetBlobContainerClient(blobContainerName:"") и BlobContainerClient.GetBlobClient(blobName:"") для последовательного создания URI BLOB-объекта с параметрами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...