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

StorageServerTimeoutPolicy

using Azure.Core; using System; using System.Globalization; using System.Runtime.CompilerServices; namespace Azure.Storage { internal class StorageServerTimeoutPolicy { private const string QueryParameterKeyWithEqualSign = "timeout="; public static StorageServerTimeoutPolicy Shared { get; } = new StorageServerTimeoutPolicy(); private StorageServerTimeoutPolicy() : this() { } public override void OnSendingRequest(HttpMessage message) { object obj = default(object); if (message.TryGetProperty("Azure.Storage.StorageServerTimeoutPolicy.Timeout", ref obj)) { if (!(obj is TimeSpan)) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(50, 2); defaultInterpolatedStringHandler.AppendFormatted("Azure.Storage.StorageServerTimeoutPolicy.Timeout"); defaultInterpolatedStringHandler.AppendLiteral(" http message property must be a TimeSpan but was "); defaultInterpolatedStringHandler.AppendFormatted(obj?.GetType()); throw new ArgumentException(defaultInterpolatedStringHandler.ToStringAndClear()); } TimeSpan timeSpan = (TimeSpan)obj; string query = message.get_Request().get_Uri().get_Query(); int num = Convert.ToInt32(timeSpan.TotalSeconds); if (string.IsNullOrEmpty(query)) { RequestUriBuilder uri = message.get_Request().get_Uri(); uri.set_Query(uri.get_Query() + string.Format(CultureInfo.InvariantCulture, "?{0}{1}", "timeout=", num)); } else if (!query.Contains("timeout=")) { RequestUriBuilder uri2 = message.get_Request().get_Uri(); uri2.set_Query(uri2.get_Query() + string.Format(CultureInfo.InvariantCulture, "&{0}{1}", "timeout=", num)); } } } } }