From 048356dddf551e26b0bd0793e1d659f042b1f351 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20B=C3=B6sche?= Date: Sat, 31 Jan 2026 23:37:16 +0100 Subject: [PATCH] Refactor ensureParent method to simplify MKCOL URL construction --- go_cloud/internal/storage/webdav.go | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/go_cloud/internal/storage/webdav.go b/go_cloud/internal/storage/webdav.go index 4d53853..5e2464a 100644 --- a/go_cloud/internal/storage/webdav.go +++ b/go_cloud/internal/storage/webdav.go @@ -59,16 +59,9 @@ func (c *WebDAVClient) ensureParent(ctx context.Context, remotePath string) erro for _, p := range parts { cur = path.Join(cur, p) var mkurl string - if cur == "" || cur == "/" { - mkurl = fmt.Sprintf("%s/%s", c.BaseURL, url.PathEscape(p)) - } else { - // Ensure there's a "/" between baseURL and cur - sep := "" - if !strings.HasSuffix(c.BaseURL, "/") && !strings.HasPrefix(cur, "/") { - sep = "/" - } - mkurl = fmt.Sprintf("%s%s%s", c.BaseURL, sep, strings.TrimPrefix(cur, "/")) - } + // Always ensure a single '/' between BaseURL and the current path + // e.g. http://nextcloud/remote.php/dav/files/testuser/orgs/ + mkurl = fmt.Sprintf("%s/%s", strings.TrimRight(c.BaseURL, "/"), strings.TrimLeft(cur, "/")) req, _ := http.NewRequestWithContext(ctx, "MKCOL", mkurl, nil) if c.user != "" { req.SetBasicAuth(c.user, c.pass)