forked from TrueCloudLab/rclone
serve sftp: use VFS utility functions instead of own copy
This commit is contained in:
parent
0961763082
commit
b25f5eb0d1
1 changed files with 3 additions and 15 deletions
|
@ -48,14 +48,10 @@ func (v vfsHandler) Filewrite(r *sftp.Request) (io.WriterAt, error) {
|
||||||
func (v vfsHandler) Filecmd(r *sftp.Request) error {
|
func (v vfsHandler) Filecmd(r *sftp.Request) error {
|
||||||
switch r.Method {
|
switch r.Method {
|
||||||
case "Setstat":
|
case "Setstat":
|
||||||
node, err := v.Stat(r.Filepath)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
attr := r.Attributes()
|
attr := r.Attributes()
|
||||||
if attr.Mtime != 0 {
|
if attr.Mtime != 0 {
|
||||||
modTime := time.Unix(int64(attr.Mtime), 0)
|
modTime := time.Unix(int64(attr.Mtime), 0)
|
||||||
err := node.SetModTime(modTime)
|
err := v.Chtimes(r.Filepath, modTime, modTime)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -67,20 +63,12 @@ func (v vfsHandler) Filecmd(r *sftp.Request) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
case "Rmdir", "Remove":
|
case "Rmdir", "Remove":
|
||||||
node, err := v.Stat(r.Filepath)
|
err := v.Remove(r.Filepath)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
err = node.Remove()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
case "Mkdir":
|
case "Mkdir":
|
||||||
dir, leaf, err := v.StatParent(r.Filepath)
|
err := v.Mkdir(r.Filepath, 0777)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
_, err = dir.Mkdir(leaf)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue