<PackageReference Include="Azure.Storage.Blobs" Version="12.23.0-beta.2" />

StorageServerTimeoutPolicy

using Azure.Core; using Azure.Core.Pipeline; using System; using System.Globalization; namespace Azure.Storage { internal class StorageServerTimeoutPolicy : HttpPipelineSynchronousPolicy { private const string QueryParameterKeyWithEqualSign = "timeout="; public static StorageServerTimeoutPolicy Shared { get; } = new StorageServerTimeoutPolicy(); private StorageServerTimeoutPolicy() { } public override void OnSendingRequest(HttpMessage message) { if (message.TryGetProperty("Azure.Storage.StorageServerTimeoutPolicy.Timeout", out object value)) { if (!(value is TimeSpan)) throw new ArgumentException(string.Format("{0} http message property must be a TimeSpan but was {1}", "Azure.Storage.StorageServerTimeoutPolicy.Timeout", value?.GetType())); TimeSpan timeSpan = (TimeSpan)value; string query = message.Request.Uri.Query; int num = Convert.ToInt32(timeSpan.TotalSeconds); if (string.IsNullOrEmpty(query)) { RequestUriBuilder uri = message.Request.Uri; uri.Query += string.Format(CultureInfo.InvariantCulture, "?{0}{1}", "timeout=", num); } else if (!query.Contains("timeout=")) { RequestUriBuilder uri2 = message.Request.Uri; uri2.Query += string.Format(CultureInfo.InvariantCulture, "&{0}{1}", "timeout=", num); } } } } }