fix: infinite loop if new multi-level folder (close #1661)
This commit is contained in:
parent
53e08e75fe
commit
2de0da87fa
@ -8,6 +8,7 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/alist-org/alist/v3/drivers/base"
|
"github.com/alist-org/alist/v3/drivers/base"
|
||||||
"github.com/alist-org/alist/v3/internal/driver"
|
"github.com/alist-org/alist/v3/internal/driver"
|
||||||
@ -90,6 +91,9 @@ func (d *Quark) MakeDir(ctx context.Context, parentDir model.Obj, dirName string
|
|||||||
_, err := d.request("/file", http.MethodPost, func(req *resty.Request) {
|
_, err := d.request("/file", http.MethodPost, func(req *resty.Request) {
|
||||||
req.SetBody(data)
|
req.SetBody(data)
|
||||||
}, nil)
|
}, nil)
|
||||||
|
if err == nil {
|
||||||
|
time.Sleep(time.Second)
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -181,6 +181,7 @@ func MakeDir(ctx context.Context, storage driver.Driver, path string) error {
|
|||||||
if storage.Config().CheckStatus && storage.GetStorage().Status != WORK {
|
if storage.Config().CheckStatus && storage.GetStorage().Status != WORK {
|
||||||
return errors.Errorf("storage not init: %s", storage.GetStorage().Status)
|
return errors.Errorf("storage not init: %s", storage.GetStorage().Status)
|
||||||
}
|
}
|
||||||
|
path = utils.StandardizePath(path)
|
||||||
// check if dir exists
|
// check if dir exists
|
||||||
f, err := Get(ctx, storage, path)
|
f, err := Get(ctx, storage, path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -195,7 +196,11 @@ func MakeDir(ctx context.Context, storage driver.Driver, path string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.WithMessagef(err, "failed to get parent dir [%s]", parentPath)
|
return errors.WithMessagef(err, "failed to get parent dir [%s]", parentPath)
|
||||||
}
|
}
|
||||||
return errors.WithStack(storage.MakeDir(ctx, parentDir, dirName))
|
err = storage.MakeDir(ctx, parentDir, dirName)
|
||||||
|
if err == nil {
|
||||||
|
ClearCache(storage, parentPath)
|
||||||
|
}
|
||||||
|
return errors.WithStack(err)
|
||||||
} else {
|
} else {
|
||||||
return errors.WithMessage(err, "failed to check if dir exists")
|
return errors.WithMessage(err, "failed to check if dir exists")
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user