diff --git a/internal/fs/copy.go b/internal/fs/copy.go index 2c4a8a0c..39d31198 100644 --- a/internal/fs/copy.go +++ b/internal/fs/copy.go @@ -3,9 +3,10 @@ package fs import ( "context" "fmt" + stdpath "path" + "github.com/alist-org/alist/v3/pkg/task" "github.com/alist-org/alist/v3/pkg/utils" - stdpath "path" "github.com/alist-org/alist/v3/internal/driver" "github.com/alist-org/alist/v3/internal/model" @@ -31,9 +32,11 @@ func Copy(ctx context.Context, account driver.Driver, srcPath, dstPath string) ( return false, operations.Copy(ctx, account, srcActualPath, dstActualPath) } // not in an account - CopyTaskManager.Add(fmt.Sprintf("copy [%s](%s) to [%s](%s)", srcAccount.GetAccount().VirtualPath, srcActualPath, dstAccount.GetAccount().VirtualPath, dstActualPath), func(task *task.Task) error { - return CopyBetween2Accounts(task.Ctx, srcAccount, dstAccount, srcActualPath, dstActualPath, task.SetStatus) - }) + CopyTaskManager.Add( + fmt.Sprintf("copy [%s](%s) to [%s](%s)", srcAccount.GetAccount().VirtualPath, srcActualPath, dstAccount.GetAccount().VirtualPath, dstActualPath), + func(task *task.Task) error { + return CopyBetween2Accounts(task.Ctx, srcAccount, dstAccount, srcActualPath, dstActualPath, task.SetStatus) + }) return true, nil } @@ -55,16 +58,20 @@ func CopyBetween2Accounts(ctx context.Context, srcAccount, dstAccount driver.Dri } srcObjPath := stdpath.Join(srcPath, obj.GetName()) dstObjPath := stdpath.Join(dstPath, obj.GetName()) - CopyTaskManager.Add(fmt.Sprintf("copy [%s](%s) to [%s](%s)", srcAccount.GetAccount().VirtualPath, srcObjPath, dstAccount.GetAccount().VirtualPath, dstObjPath), func(task *task.Task) error { - return CopyBetween2Accounts(ctx, srcAccount, dstAccount, srcObjPath, dstObjPath, task.SetStatus) - }) + CopyTaskManager.Add( + fmt.Sprintf("copy [%s](%s) to [%s](%s)", srcAccount.GetAccount().VirtualPath, srcObjPath, dstAccount.GetAccount().VirtualPath, dstObjPath), + func(task *task.Task) error { + return CopyBetween2Accounts(ctx, srcAccount, dstAccount, srcObjPath, dstObjPath, task.SetStatus) + }) } } else { - CopyTaskManager.Add(fmt.Sprintf("copy [%s](%s) to [%s](%s)", srcAccount.GetAccount().VirtualPath, srcPath, dstAccount.GetAccount().VirtualPath, dstPath), func(task *task.Task) error { - return CopyFileBetween2Accounts(task.Ctx, srcAccount, dstAccount, srcPath, dstPath, func(percentage float64) { - task.SetStatus(fmt.Sprintf("uploading: %2.f%", percentage)) + CopyTaskManager.Add( + fmt.Sprintf("copy [%s](%s) to [%s](%s)", srcAccount.GetAccount().VirtualPath, srcPath, dstAccount.GetAccount().VirtualPath, dstPath), + func(task *task.Task) error { + return CopyFileBetween2Accounts(task.Ctx, srcAccount, dstAccount, srcPath, dstPath, func(percentage float64) { + task.SetStatus(fmt.Sprintf("uploading: %2.f%%", percentage)) + }) }) - }) } return nil }