diff --git a/backend/webdav/webdav.go b/backend/webdav/webdav.go index a08d8975f..91b1320e7 100644 --- a/backend/webdav/webdav.go +++ b/backend/webdav/webdav.go @@ -542,6 +542,11 @@ func (f *Fs) PutStream(in io.Reader, src fs.ObjectInfo, options ...fs.OpenOption // mkParentDir makes the parent of the native path dirPath if // necessary and any directories above that func (f *Fs) mkParentDir(dirPath string) error { + // defer log.Trace(dirPath, "")("") + // chop off trailing / if it exists + if strings.HasSuffix(dirPath, "/") { + dirPath = dirPath[:len(dirPath)-1] + } parent := path.Dir(dirPath) if parent == "." { parent = "" @@ -551,10 +556,15 @@ func (f *Fs) mkParentDir(dirPath string) error { // mkdir makes the directory and parents using native paths func (f *Fs) mkdir(dirPath string) error { + // defer log.Trace(dirPath, "")("") // We assume the root is already ceated if dirPath == "" { return nil } + // Collections must end with / + if !strings.HasSuffix(dirPath, "/") { + dirPath += "/" + } opts := rest.Opts{ Method: "MKCOL", Path: dirPath,