diff options
author | 2012-11-19 13:18:23 -0400 | |
---|---|---|
committer | 2012-11-19 13:18:23 -0400 | |
commit | 798c3d45c11cfe3d7604b27f3271f50d0f810db7 (patch) | |
tree | 946bf6b717e069623d8c48a93402e08db564dcd5 /Remote/WebDAV.hs | |
parent | 8ed7d090ab319bcc45e1593cd2613d38a3615120 (diff) |
directory special remote: Made more efficient and robust.
Files are now written to a tmp directory in the remote, and once all
chunks are written, etc, it's moved into the final place atomically.
For now, checkpresent still checks every single chunk of a file, because
the old method could leave partially transferred files with some chunks
present and others not.
Diffstat (limited to 'Remote/WebDAV.hs')
-rw-r--r-- | Remote/WebDAV.hs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/Remote/WebDAV.hs b/Remote/WebDAV.hs index 113e59046..b3d342d19 100644 --- a/Remote/WebDAV.hs +++ b/Remote/WebDAV.hs @@ -90,7 +90,7 @@ store r k _f p = metered (Just p) k $ \meterupdate -> let url = davLocation baseurl k f <- inRepo $ gitAnnexLocation k liftIO $ withMeteredFile f meterupdate $ - storeHelper r url user pass + storeHelper r k url user pass storeEncrypted :: Remote -> (Cipher, Key) -> Key -> MeterUpdate -> Annex Bool storeEncrypted r (cipher, enck) k p = metered (Just p) k $ \meterupdate -> @@ -98,12 +98,12 @@ storeEncrypted r (cipher, enck) k p = metered (Just p) k $ \meterupdate -> let url = davLocation baseurl enck f <- inRepo $ gitAnnexLocation k liftIO $ encrypt cipher (streamMeteredFile f meterupdate) $ - readBytes $ storeHelper r url user pass + readBytes $ storeHelper r enck url user pass -storeHelper :: Remote -> DavUrl -> DavUser -> DavPass -> L.ByteString -> IO Bool -storeHelper r urlbase user pass b = catchBoolIO $ do +storeHelper :: Remote -> Key -> DavUrl -> DavUser -> DavPass -> L.ByteString -> IO Bool +storeHelper r k urlbase user pass b = catchBoolIO $ do davMkdir (urlParent urlbase) user pass - storeChunks urlbase chunksize storer recorder finalizer + storeChunks k undefined undefined chunksize storer recorder finalizer where chunksize = chunkSize $ config r storer urls = storeChunked chunksize urls storehttp b |