private void AddProgress()

in src/AlibabaCloud.OSS.V2/Client.ObjectBasic.cs [567:603]


        private void AddProgress(ref Models.RequestModel request, ref OperationInput input)
        {
            ProgressFunc? func;
            switch (request)
            {
                case Models.PutObjectRequest req1:
                    if (req1.ProgressFn == null)
                    {
                        return;
                    }
                    func = req1.ProgressFn;
                    break;
                case Models.AppendObjectRequest req2:
                    if (req2.ProgressFn == null)
                    {
                        return;
                    }
                    func = req2.ProgressFn;
                    break;
                case Models.UploadPartRequest req3:
                    if (req3.ProgressFn == null)
                    {
                        return;
                    }
                    func = req3.ProgressFn;
                    break;
                default:
                    return;
            }
            long total = 0;
            if (input.Body != null)
            {
                total = input.Body.Length;
            }
            var tracker = new ProgressStream(func, total);
            input.AddStreamTracker(tracker);
        }