diff --git a/go_cloud/bin/api b/go_cloud/bin/api index b507eeb..c0a7e16 100755 Binary files a/go_cloud/bin/api and b/go_cloud/bin/api differ diff --git a/go_cloud/internal/storage/webdav.go b/go_cloud/internal/storage/webdav.go index a209576..5e3169f 100644 --- a/go_cloud/internal/storage/webdav.go +++ b/go_cloud/internal/storage/webdav.go @@ -59,7 +59,12 @@ func (c *WebDAVClient) ensureParent(ctx context.Context, remotePath string) erro if cur == "" || cur == "/" { mkurl = fmt.Sprintf("%s/%s", c.baseURL, url.PathEscape(p)) } else { - mkurl = fmt.Sprintf("%s%s", c.baseURL, cur) + // 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, "/")) } req, _ := http.NewRequestWithContext(ctx, "MKCOL", mkurl, nil) if c.user != "" {