chore: Merge pull request #884 from Xhofe/dev

fix: some issues of webdav due to virtual path
This commit is contained in:
Xhofe 2022-04-01 22:02:39 +08:00 committed by GitHub
commit 342729179d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 14 deletions

View File

@ -38,10 +38,10 @@ func ParsePath(rawPath string) (*model.Account, string, base.Driver, error) {
if bIndex != -1 { if bIndex != -1 {
name = name[:bIndex] name = name[:bIndex]
} }
if name == "/" { //if name == "/" {
name = "" // name = ""
} //}
return &account, strings.TrimPrefix(rawPath, name), driver, nil return &account, utils.ParsePath(strings.TrimPrefix(rawPath, name)), driver, nil
} }
func ErrorResp(c *gin.Context, err error, code int) { func ErrorResp(c *gin.Context, err error, code int) {

View File

@ -31,18 +31,21 @@ func (fs *FileSystem) File(rawPath string) (*model.File, error) {
if f, ok := upFileMap[rawPath]; ok { if f, ok := upFileMap[rawPath]; ok {
return f, nil return f, nil
} }
if model.AccountsCount() > 1 && rawPath == "/" {
now := time.Now()
return &model.File{
Name: "root",
Size: 0,
Type: conf.FOLDER,
Driver: "root",
UpdatedAt: &now,
}, nil
}
account, path_, driver, err := common.ParsePath(rawPath) account, path_, driver, err := common.ParsePath(rawPath)
log.Debugln(account, path_, driver, err)
if err != nil { if err != nil {
if err.Error() == "path not found" {
accountFiles := model.GetAccountFilesByPath(rawPath)
if len(accountFiles) != 0 {
now := time.Now()
return &model.File{
Name: "root",
Size: 0,
Type: conf.FOLDER,
UpdatedAt: &now,
}, nil
}
}
return nil, err return nil, err
} }
return operate.File(driver, account, path_) return operate.File(driver, account, path_)