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);
}