<PackageReference Include="Azure.Storage.Blobs" Version="12.25.1" />

StorageResponseClassifier

using Azure.Core; using System; namespace Azure.Storage { internal class StorageResponseClassifier : ResponseClassifier { public Uri SecondaryStorageUri { get; set; } public override bool IsRetriableResponse(HttpMessage message) { if (SecondaryStorageUri != (Uri)null && message.Request.Uri.Host == SecondaryStorageUri.Host && message.Response.Status == 404) return true; string value; if (message.Response.Status >= 400 && message.Response.Headers.TryGetValue("x-ms-error-code", out value) && (value == "InternalError" || value == "OperationTimedOut" || value == "ServerBusy")) return true; return base.IsRetriableResponse(message); } public override bool IsErrorResponse(HttpMessage message) { if (message.Response.Status == 409) { RequestHeaders headers = message.Request.Headers; if (message.Response.Headers.TryGetValue("x-ms-error-code", out string value) && (value == "ContainerAlreadyExists" || value == "BlobAlreadyExists")) return !headers.Contains(HttpHeader.Names.IfMatch) && !headers.Contains(HttpHeader.Names.IfNoneMatch) && !headers.Contains(HttpHeader.Names.IfModifiedSince) && !headers.Contains(HttpHeader.Names.IfUnmodifiedSince); } return base.IsErrorResponse(message); } } }