mirror of https://github.com/Xhofe/alist
feat(fs): add put return after finished
parent
956a5ae906
commit
3f49271db6
|
@ -77,8 +77,16 @@ func Remove(ctx context.Context, path string) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func Put(ctx context.Context, dstDirPath string, file model.FileStreamer) error {
|
func PutDirectly(ctx context.Context, dstDirPath string, file model.FileStreamer) error {
|
||||||
err := put(ctx, dstDirPath, file)
|
err := putDirectly(ctx, dstDirPath, file)
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("failed put %s: %+v", dstDirPath, err)
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func PutAsTask(dstDirPath string, file model.FileStreamer) error {
|
||||||
|
err := putAsTask(dstDirPath, file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("failed put %s: %+v", dstDirPath, err)
|
log.Errorf("failed put %s: %+v", dstDirPath, err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,8 +15,8 @@ var UploadTaskManager = task.NewTaskManager[uint64](3, func(tid *uint64) {
|
||||||
atomic.AddUint64(tid, 1)
|
atomic.AddUint64(tid, 1)
|
||||||
})
|
})
|
||||||
|
|
||||||
// Put add as a put task
|
// putAsTask add as a put task and return immediately
|
||||||
func put(ctx context.Context, dstDirPath string, file model.FileStreamer) error {
|
func putAsTask(dstDirPath string, file model.FileStreamer) error {
|
||||||
account, dstDirActualPath, err := operations.GetAccountAndActualPath(dstDirPath)
|
account, dstDirActualPath, err := operations.GetAccountAndActualPath(dstDirPath)
|
||||||
if account.Config().NoUpload {
|
if account.Config().NoUpload {
|
||||||
return errors.WithStack(errs.UploadNotSupported)
|
return errors.WithStack(errs.UploadNotSupported)
|
||||||
|
@ -32,3 +32,15 @@ func put(ctx context.Context, dstDirPath string, file model.FileStreamer) error
|
||||||
}))
|
}))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// putDirect put the file and return after finish
|
||||||
|
func putDirectly(ctx context.Context, dstDirPath string, file model.FileStreamer) error {
|
||||||
|
account, dstDirActualPath, err := operations.GetAccountAndActualPath(dstDirPath)
|
||||||
|
if account.Config().NoUpload {
|
||||||
|
return errors.WithStack(errs.UploadNotSupported)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return errors.WithMessage(err, "failed get account")
|
||||||
|
}
|
||||||
|
return operations.Put(ctx, account, dstDirActualPath, file, nil)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue