Skip to content

Commit 507b19a

Browse files
committed
修复上传任务的文件被提前清理
1 parent c37659e commit 507b19a

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

internal/fs/fs.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,7 @@ func UploadSlice(ctx context.Context, storage driver.Driver, req *reqres.UploadS
431431
file: msu.tmpFile,
432432
offset: int64(req.SliceNum) * int64(msu.SliceSize),
433433
}
434-
_, err := io.Copy(sw, file)
434+
_, err := utils.CopyWithBuffer(sw, file)
435435

436436
if err != nil {
437437
log.Error("Copy error", req, err)
@@ -516,9 +516,9 @@ func SliceUpComplete(ctx context.Context, storage driver.Driver, uploadID uint)
516516

517517
default:
518518
//其他网盘客户端上传到本地后,上传到网盘,使用任务处理
519-
fd, err := os.Open(msu.TmpFile)
520-
if err != nil {
521-
log.Error("Open error", msu.TmpFile, err)
519+
if msu.tmpFile == nil {
520+
err := fmt.Errorf("tmp file not found [%d]", uploadID)
521+
log.Error(err)
522522
return nil, err
523523
}
524524
var hashInfo utils.HashInfo
@@ -536,11 +536,13 @@ func SliceUpComplete(ctx context.Context, storage driver.Driver, uploadID uint)
536536
Modified: time.Now(),
537537
HashInfo: hashInfo,
538538
},
539-
Reader: fd,
540-
Mimetype: "application/octet-stream",
541-
WebPutAsTask: false,
542539
}
540+
file.Mimetype = utils.GetMimeType(msu.Name)
543541
if msu.AsTask {
542+
file.SetTmpFile(msu.tmpFile)
543+
// 置空,避免defer中被清理
544+
msu.tmpFile = nil
545+
msu.TmpFile = ""
544546
_, err = putAsTask(ctx, msu.DstPath, file)
545547
if err != nil {
546548
log.Error("putAsTask error", msu.SliceUpload, err)
@@ -551,6 +553,7 @@ func SliceUpComplete(ctx context.Context, storage driver.Driver, uploadID uint)
551553
UploadID: msu.ID,
552554
}, nil
553555
}
556+
file.Reader = msu.tmpFile
554557
err = op.Put(ctx, storage, msu.ActualPath, file, nil)
555558
if err != nil {
556559
log.Error("Put error", msu.SliceUpload, err)
@@ -560,7 +563,6 @@ func SliceUpComplete(ctx context.Context, storage driver.Driver, uploadID uint)
560563
Complete: 1,
561564
UploadID: msu.ID,
562565
}, nil
563-
564566
}
565567

566568
}

0 commit comments

Comments
 (0)