diff options
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | Remote/WebDAV.hs | 6 | ||||
-rw-r--r-- | Remote/WebDAV/DavLocation.hs | 11 |
3 files changed, 8 insertions, 10 deletions
@@ -16,6 +16,7 @@ git-annex (6.20170819) UNRELEASED; urgency=medium the file is not present. * webdav: Fix lack of url-escaping of filenames. Mostly impacted exports of filenames containing eg spaces. + * webdav: Changed path used on webdav server for temporary files. -- Joey Hess <id@joeyh.name> Mon, 28 Aug 2017 12:20:59 -0400 diff --git a/Remote/WebDAV.hs b/Remote/WebDAV.hs index 61fc70324..ce27dd551 100644 --- a/Remote/WebDAV.hs +++ b/Remote/WebDAV.hs @@ -127,7 +127,7 @@ store _ (Just dav) = httpStorer $ \k reqbody -> liftIO $ goDAV dav $ do storeHelper :: DavHandle -> DavLocation -> DavLocation -> RequestBody -> DAVT IO () storeHelper dav tmp dest reqbody = do - void $ mkColRecursive tmpDir + maybe noop (void . mkColRecursive) (locationParent tmp) inLocation tmp $ putContentM' (contentType, reqbody) finalizeStore dav tmp dest @@ -257,8 +257,8 @@ testDav url (Just (u, p)) = do test $ liftIO $ evalDAVT url $ do prepDAV user pass makeParentDirs - void $ mkColRecursive tmpDir - inLocation (tmpLocation "git-annex-test") $ do + void $ mkColRecursive "/" + inLocation (tmpLocation "test") $ do putContentM (Nothing, L8.fromString "test") delContentM where diff --git a/Remote/WebDAV/DavLocation.hs b/Remote/WebDAV/DavLocation.hs index 8979ab9ef..74b4831ea 100644 --- a/Remote/WebDAV/DavLocation.hs +++ b/Remote/WebDAV/DavLocation.hs @@ -46,18 +46,15 @@ keyDir k = addTrailingPathSeparator $ hashdir </> keyFile k keyLocation :: Key -> DavLocation keyLocation k = keyDir k ++ keyFile k +exportLocation :: ExportLocation -> DavLocation +exportLocation (ExportLocation f) = f + {- Where we store temporary data for a key as it's being uploaded. -} keyTmpLocation :: Key -> DavLocation keyTmpLocation = tmpLocation . keyFile -exportLocation :: ExportLocation -> DavLocation -exportLocation (ExportLocation f) = f - tmpLocation :: FilePath -> DavLocation -tmpLocation f = tmpDir </> f - -tmpDir :: DavLocation -tmpDir = "tmp" +tmpLocation f = "git-annex-webdav-tmp-" ++ f locationParent :: String -> Maybe String locationParent loc |