From cf5714ba7359c0340bb0b31fac90469b28d0f217 Mon Sep 17 00:00:00 2001 From: BoYanZh Date: Sat, 7 Jan 2023 00:47:08 +0800 Subject: [PATCH] fix(smb): use correct path (#2933) There is no need to add a `.` prefix as there is no leading `/` in paths --- drivers/smb/driver.go | 20 ++++++++++---------- drivers/smb/util.go | 9 --------- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/drivers/smb/driver.go b/drivers/smb/driver.go index 5392f130..b3217a72 100644 --- a/drivers/smb/driver.go +++ b/drivers/smb/driver.go @@ -47,7 +47,7 @@ func (d *SMB) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]m if err := d.checkConn(); err != nil { return nil, err } - fullPath := d.getSMBPath(dir) + fullPath := dir.GetPath() rawFiles, err := d.fs.ReadDir(fullPath) if err != nil { d.cleanLastConnTime() @@ -73,7 +73,7 @@ func (d *SMB) Link(ctx context.Context, file model.Obj, args model.LinkArgs) (*m if err := d.checkConn(); err != nil { return nil, err } - fullPath := d.getSMBPath(file) + fullPath := file.GetPath() remoteFile, err := d.fs.Open(fullPath) if err != nil { d.cleanLastConnTime() @@ -89,7 +89,7 @@ func (d *SMB) MakeDir(ctx context.Context, parentDir model.Obj, dirName string) if err := d.checkConn(); err != nil { return err } - fullPath := filepath.Join(d.getSMBPath(parentDir), dirName) + fullPath := filepath.Join(parentDir.GetPath(), dirName) err := d.fs.MkdirAll(fullPath, 0700) if err != nil { d.cleanLastConnTime() @@ -103,8 +103,8 @@ func (d *SMB) Move(ctx context.Context, srcObj, dstDir model.Obj) error { if err := d.checkConn(); err != nil { return err } - srcPath := d.getSMBPath(srcObj) - dstPath := filepath.Join(d.getSMBPath(dstDir), srcObj.GetName()) + srcPath := srcObj.GetPath() + dstPath := filepath.Join(dstDir.GetPath(), srcObj.GetName()) err := d.fs.Rename(srcPath, dstPath) if err != nil { d.cleanLastConnTime() @@ -118,7 +118,7 @@ func (d *SMB) Rename(ctx context.Context, srcObj model.Obj, newName string) erro if err := d.checkConn(); err != nil { return err } - srcPath := d.getSMBPath(srcObj) + srcPath := srcObj.GetPath() dstPath := filepath.Join(filepath.Dir(srcPath), newName) err := d.fs.Rename(srcPath, dstPath) if err != nil { @@ -133,8 +133,8 @@ func (d *SMB) Copy(ctx context.Context, srcObj, dstDir model.Obj) error { if err := d.checkConn(); err != nil { return err } - srcPath := d.getSMBPath(srcObj) - dstPath := filepath.Join(d.getSMBPath(dstDir), srcObj.GetName()) + srcPath := srcObj.GetPath() + dstPath := filepath.Join(dstDir.GetPath(), srcObj.GetName()) var err error if srcObj.IsDir() { err = d.CopyDir(srcPath, dstPath) @@ -154,7 +154,7 @@ func (d *SMB) Remove(ctx context.Context, obj model.Obj) error { return err } var err error - fullPath := d.getSMBPath(obj) + fullPath := obj.GetPath() if obj.IsDir() { err = d.fs.RemoveAll(fullPath) } else { @@ -172,7 +172,7 @@ func (d *SMB) Put(ctx context.Context, dstDir model.Obj, stream model.FileStream if err := d.checkConn(); err != nil { return err } - fullPath := filepath.Join(d.getSMBPath(dstDir), stream.GetName()) + fullPath := filepath.Join(dstDir.GetPath(), stream.GetName()) out, err := d.fs.Create(fullPath) if err != nil { d.cleanLastConnTime() diff --git a/drivers/smb/util.go b/drivers/smb/util.go index 87c04009..68d2ae32 100644 --- a/drivers/smb/util.go +++ b/drivers/smb/util.go @@ -8,7 +8,6 @@ import ( "path/filepath" "time" - "github.com/alist-org/alist/v3/internal/model" "github.com/hirochachacha/go-smb2" ) @@ -53,14 +52,6 @@ func (d *SMB) checkConn() error { return d.initFS() } -func (d *SMB) getSMBPath(dir model.Obj) string { - fullPath := dir.GetPath() - if fullPath[0:1] != "." { - fullPath = "." + fullPath - } - return fullPath -} - // CopyFile File copies a single file from src to dst func (d *SMB) CopyFile(src, dst string) error { var err error