Skip to content

Commit 3838ef0

Browse files
feat(traffic): update progress when caching file (#646)
* feat(traffic): update progress when caching file * 调整参数位置和命名 --------- Co-authored-by: j2rong4cn <[email protected]>
1 parent 9e610af commit 3838ef0

File tree

16 files changed

+96
-45
lines changed

16 files changed

+96
-45
lines changed

drivers/115/driver.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,9 @@ func (d *Pan115) Put(ctx context.Context, dstDir model.Obj, stream model.FileStr
186186
preHash = strings.ToUpper(preHash)
187187
fullHash := stream.GetHash().GetHash(utils.SHA1)
188188
if len(fullHash) != utils.SHA1.Width {
189-
_, fullHash, err = streamPkg.CacheFullInTempFileAndHash(stream, utils.SHA1)
189+
cacheFileProgress := model.UpdateProgressWithRange(up, 0, 50)
190+
up = model.UpdateProgressWithRange(up, 50, 100)
191+
_, fullHash, err = streamPkg.CacheFullInTempFileAndHash(stream, cacheFileProgress, utils.SHA1)
190192
if err != nil {
191193
return nil, err
192194
}

drivers/115_open/driver.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"strings"
99
"time"
1010

11+
sdk "github.com/OpenListTeam/115-sdk-go"
1112
"github.com/OpenListTeam/OpenList/v4/cmd/flags"
1213
"github.com/OpenListTeam/OpenList/v4/drivers/base"
1314
"github.com/OpenListTeam/OpenList/v4/internal/driver"
@@ -16,7 +17,6 @@ import (
1617
"github.com/OpenListTeam/OpenList/v4/internal/stream"
1718
"github.com/OpenListTeam/OpenList/v4/pkg/http_range"
1819
"github.com/OpenListTeam/OpenList/v4/pkg/utils"
19-
sdk "github.com/OpenListTeam/115-sdk-go"
2020
"golang.org/x/time/rate"
2121
)
2222

@@ -222,7 +222,9 @@ func (d *Open115) Put(ctx context.Context, dstDir model.Obj, file model.FileStre
222222
}
223223
sha1 := file.GetHash().GetHash(utils.SHA1)
224224
if len(sha1) != utils.SHA1.Width {
225-
_, sha1, err = stream.CacheFullInTempFileAndHash(file, utils.SHA1)
225+
cacheFileProgress := model.UpdateProgressWithRange(up, 0, 50)
226+
up = model.UpdateProgressWithRange(up, 50, 100)
227+
_, sha1, err = stream.CacheFullInTempFileAndHash(file, cacheFileProgress, utils.SHA1)
226228
if err != nil {
227229
return err
228230
}
@@ -252,6 +254,7 @@ func (d *Open115) Put(ctx context.Context, dstDir model.Obj, file model.FileStre
252254
return err
253255
}
254256
if resp.Status == 2 {
257+
up(100)
255258
return nil
256259
}
257260
// 2. two way verify
@@ -286,6 +289,7 @@ func (d *Open115) Put(ctx context.Context, dstDir model.Obj, file model.FileStre
286289
return err
287290
}
288291
if resp.Status == 2 {
292+
up(100)
289293
return nil
290294
}
291295
}

drivers/123/driver.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,9 @@ func (d *Pan123) Put(ctx context.Context, dstDir model.Obj, file model.FileStrea
188188
etag := file.GetHash().GetHash(utils.MD5)
189189
var err error
190190
if len(etag) < utils.MD5.Width {
191-
_, etag, err = stream.CacheFullInTempFileAndHash(file, utils.MD5)
191+
cacheFileProgress := model.UpdateProgressWithRange(up, 0, 50)
192+
up = model.UpdateProgressWithRange(up, 50, 100)
193+
_, etag, err = stream.CacheFullInTempFileAndHash(file, cacheFileProgress, utils.MD5)
192194
if err != nil {
193195
return err
194196
}

drivers/123_open/driver.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,9 @@ func (d *Open123) Put(ctx context.Context, dstDir model.Obj, file model.FileStre
109109
etag := file.GetHash().GetHash(utils.MD5)
110110

111111
if len(etag) < utils.MD5.Width {
112-
_, etag, err = stream.CacheFullInTempFileAndHash(file, utils.MD5)
112+
cacheFileProgress := model.UpdateProgressWithRange(up, 0, 50)
113+
up = model.UpdateProgressWithRange(up, 50, 100)
114+
_, etag, err = stream.CacheFullInTempFileAndHash(file, cacheFileProgress, utils.MD5)
113115
if err != nil {
114116
return err
115117
}
@@ -121,7 +123,6 @@ func (d *Open123) Put(ctx context.Context, dstDir model.Obj, file model.FileStre
121123
if createResp.Data.Reuse {
122124
return nil
123125
}
124-
up(10)
125126

126127
return d.Upload(ctx, file, createResp, up)
127128
}

drivers/139/driver.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -522,7 +522,9 @@ func (d *Yun139) Put(ctx context.Context, dstDir model.Obj, stream model.FileStr
522522
var err error
523523
fullHash := stream.GetHash().GetHash(utils.SHA256)
524524
if len(fullHash) != utils.SHA256.Width {
525-
_, fullHash, err = streamPkg.CacheFullInTempFileAndHash(stream, utils.SHA256)
525+
cacheFileProgress := model.UpdateProgressWithRange(up, 0, 50)
526+
up = model.UpdateProgressWithRange(up, 50, 100)
527+
_, fullHash, err = streamPkg.CacheFullInTempFileAndHash(stream, cacheFileProgress, utils.SHA256)
526528
if err != nil {
527529
return err
528530
}

drivers/189pc/utils.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -820,7 +820,9 @@ func (y *Cloud189PC) GetMultiUploadUrls(ctx context.Context, isFamily bool, uplo
820820

821821
// 旧版本上传,家庭云不支持覆盖
822822
func (y *Cloud189PC) OldUpload(ctx context.Context, dstDir model.Obj, file model.FileStreamer, up driver.UpdateProgress, isFamily bool, overwrite bool) (model.Obj, error) {
823-
tempFile, fileMd5, err := stream.CacheFullInTempFileAndHash(file, utils.MD5)
823+
cacheFileProgress := model.UpdateProgressWithRange(up, 0, 50)
824+
up = model.UpdateProgressWithRange(up, 50, 100)
825+
tempFile, fileMd5, err := stream.CacheFullInTempFileAndHash(file, cacheFileProgress, utils.MD5)
824826
if err != nil {
825827
return nil, err
826828
}

drivers/aliyundrive_open/upload.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,9 @@ func (d *AliyundriveOpen) upload(ctx context.Context, dstDir model.Obj, stream m
194194

195195
hash := stream.GetHash().GetHash(utils.SHA1)
196196
if len(hash) != utils.SHA1.Width {
197-
_, hash, err = streamPkg.CacheFullInTempFileAndHash(stream, utils.SHA1)
197+
cacheFileProgress := model.UpdateProgressWithRange(up, 0, 50)
198+
up = model.UpdateProgressWithRange(up, 50, 100)
199+
_, hash, err = streamPkg.CacheFullInTempFileAndHash(stream, cacheFileProgress, utils.SHA1)
198200
if err != nil {
199201
return nil, err
200202
}

drivers/ilanzou/driver.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,9 @@ func (d *ILanZou) Put(ctx context.Context, dstDir model.Obj, s model.FileStreame
276276
etag := s.GetHash().GetHash(utils.MD5)
277277
var err error
278278
if len(etag) != utils.MD5.Width {
279-
_, etag, err = stream.CacheFullInTempFileAndHash(s, utils.MD5)
279+
cacheFileProgress := model.UpdateProgressWithRange(up, 0, 50)
280+
up = model.UpdateProgressWithRange(up, 50, 100)
281+
_, etag, err = stream.CacheFullInTempFileAndHash(s, cacheFileProgress, utils.MD5)
280282
if err != nil {
281283
return nil, err
282284
}

drivers/quark_open/driver.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,17 @@ import (
66
"encoding/hex"
77
"errors"
88
"fmt"
9+
"hash"
10+
"io"
11+
"net/http"
12+
913
"github.com/OpenListTeam/OpenList/v4/drivers/base"
1014
"github.com/OpenListTeam/OpenList/v4/internal/driver"
1115
"github.com/OpenListTeam/OpenList/v4/internal/errs"
1216
"github.com/OpenListTeam/OpenList/v4/internal/model"
1317
streamPkg "github.com/OpenListTeam/OpenList/v4/internal/stream"
1418
"github.com/OpenListTeam/OpenList/v4/pkg/utils"
1519
"github.com/go-resty/resty/v2"
16-
"hash"
17-
"io"
18-
"net/http"
1920
)
2021

2122
type QuarkOpen struct {
@@ -157,7 +158,9 @@ func (d *QuarkOpen) Put(ctx context.Context, dstDir model.Obj, stream model.File
157158
}
158159

159160
if len(writers) > 0 {
160-
_, err := streamPkg.CacheFullInTempFileAndWriter(stream, io.MultiWriter(writers...))
161+
cacheFileProgress := model.UpdateProgressWithRange(up, 0, 50)
162+
up = model.UpdateProgressWithRange(up, 50, 100)
163+
_, err := streamPkg.CacheFullInTempFileAndWriter(stream, cacheFileProgress, io.MultiWriter(writers...))
161164
if err != nil {
162165
return err
163166
}

drivers/quark_uc/driver.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,9 @@ func (d *QuarkOrUC) Put(ctx context.Context, dstDir model.Obj, stream model.File
144144
}
145145

146146
if len(writers) > 0 {
147-
_, err := streamPkg.CacheFullInTempFileAndWriter(stream, io.MultiWriter(writers...))
147+
cacheFileProgress := model.UpdateProgressWithRange(up, 0, 50)
148+
up = model.UpdateProgressWithRange(up, 50, 100)
149+
_, err := streamPkg.CacheFullInTempFileAndWriter(stream, cacheFileProgress, io.MultiWriter(writers...))
148150
if err != nil {
149151
return err
150152
}

0 commit comments

Comments
 (0)