@@ -304,6 +304,8 @@ uploadLoop:
304
304
}
305
305
306
306
totalParts := len (precreateResp .BlockList )
307
+ doneParts := 0 // 新增计数器
308
+
307
309
for i , partseq := range precreateResp .BlockList {
308
310
if utils .IsCanceled (upCtx ) || partseq < 0 {
309
311
continue
@@ -328,15 +330,9 @@ uploadLoop:
328
330
return err
329
331
}
330
332
precreateResp .BlockList [i ] = - 1
331
- // 进度
332
- done := 0
333
- for _ , v := range precreateResp .BlockList {
334
- if v < 0 {
335
- done ++
336
- }
337
- }
333
+ doneParts ++ // 直接递增计数器
338
334
if totalParts > 0 {
339
- up (float64 (done ) * 100.0 / float64 (totalParts ))
335
+ up (float64 (doneParts ) * 100.0 / float64 (totalParts ))
340
336
}
341
337
return nil
342
338
})
@@ -413,13 +409,13 @@ func (d *BaiduNetdisk) uploadSlice(ctx context.Context, params map[string]string
413
409
errNo := utils .Json .Get (res .Body (), "errno" ).ToInt ()
414
410
respStr := res .String ()
415
411
lower := strings .ToLower (respStr )
416
- if strings .Contains (lower , "uploadid" ) && (strings .Contains (lower , "invalid" ) || strings .Contains (lower , "expired" ) || strings .Contains (lower , "not found" )) {
412
+ // 合并 uploadid 过期检测逻辑
413
+ if strings .Contains (lower , "uploadid" ) &&
414
+ (strings .Contains (lower , "invalid" ) || strings .Contains (lower , "expired" ) || strings .Contains (lower , "not found" )) {
417
415
return ErrUploadIDExpired
418
416
}
417
+
419
418
if errCode != 0 || errNo != 0 {
420
- if strings .Contains (lower , "invalid uploadid" ) {
421
- return ErrUploadIDExpired
422
- }
423
419
return errs .NewErr (errs .StreamIncomplete , "error uploading to baidu, response=%s" , res .String ())
424
420
}
425
421
return nil
0 commit comments