From b73dce33aa51a5138e86717d37cfd40ea3e60c2a Mon Sep 17 00:00:00 2001
From: Noah Hsu <i@nn.ci>
Date: Wed, 31 Aug 2022 22:04:04 +0800
Subject: [PATCH] fix(onedrive,ali): upload progress

---
 drivers/aliyundrive/driver.go | 3 ++-
 drivers/onedrive/util.go      | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/aliyundrive/driver.go b/drivers/aliyundrive/driver.go
index 6d8c9047..96246d8c 100644
--- a/drivers/aliyundrive/driver.go
+++ b/drivers/aliyundrive/driver.go
@@ -256,7 +256,7 @@ func (d *AliDrive) Put(ctx context.Context, dstDir model.Obj, stream model.FileS
 		file.ReadCloser = tempFile
 	}
 
-	for _, partInfo := range resp.PartInfoList {
+	for i, partInfo := range resp.PartInfoList {
 		req, err := http.NewRequest("PUT", partInfo.UploadUrl, io.LimitReader(file, DEFAULT))
 		if err != nil {
 			return err
@@ -266,6 +266,7 @@ func (d *AliDrive) Put(ctx context.Context, dstDir model.Obj, stream model.FileS
 			return err
 		}
 		res.Body.Close()
+		up(i * 100 / count)
 	}
 	var resp2 base.Json
 	_, err, e = d.request("https://api.aliyundrive.com/v2/file/complete", http.MethodPost, func(req *resty.Request) {
diff --git a/drivers/onedrive/util.go b/drivers/onedrive/util.go
index 91f7514f..ea93b68e 100644
--- a/drivers/onedrive/util.go
+++ b/drivers/onedrive/util.go
@@ -194,7 +194,7 @@ func (d *Onedrive) upBig(ctx context.Context, dstDir model.Obj, stream model.Fil
 			return errors.New(string(data))
 		}
 		res.Body.Close()
-		up(int(finish / stream.GetSize()))
+		up(int(finish * 100 / stream.GetSize()))
 	}
 	return nil
 }