private void AddDownloadCrcChecker()

in src/AlibabaCloud.OSS.V2/Client.ObjectBasic.cs [605:644]


        private void AddDownloadCrcChecker(ref Models.RequestModel request, ref OperationInput input)
        {
            if (!_clientImpl.Options.FeatureFlags.HasFlag(FeatureFlagsType.EnableCrc64CheckDownload))
            {
                return;
            }

            Action<ResponseMessage> handler = x =>
            {
                if (x.Content == null || !x.Content.CanSeek)
                {
                    return;
                }

                //skip Partial Content
                if (x.StatusCode == 206)
                {
                    return;
                }

                if (x.Headers.TryGetValue("x-oss-hash-crc64ecma", out var scrc))
                {
                    var ccrc = "0";
                    if (x.Content.Length > 0)
                    {
                        var tracker = new WriteOnlyHashStream(new HashCrc64(0));
                        x.Content.CopyTo(tracker);
                        x.Content.Seek(0, SeekOrigin.Begin);
                        var val = tracker.Hash.Final();
                        ccrc = Convert.ToString(BitConverter.ToUInt64(val, 0), CultureInfo.InvariantCulture);
                    }
                    if (!string.Equals(ccrc, scrc))
                    {
                        x.Headers.TryGetValue("x-oss-request-id", out var requestId);
                        throw new InconsistentException(ccrc, scrc, requestId ?? "");
                    }
                }
            };
            input.AddResponseHandler(handler);
        }