WebDAV notes: Difference between revisions

From Helpful
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 6: Line 6:




This has mostly been used to model files, directories, and exchange of such,
This has mostly been used to model files, directories - and exchange of such,
seen e.g. as
seen e.g. as
* remote shares
* remote shares

Revision as of 14:19, 14 July 2023

Intro

WebDAV is an extension of HTTP, adding concepts like resources, collections, permissions, and locks.


This has mostly been used to model files, directories - and exchange of such, seen e.g. as

  • remote shares
  • one way of talking subversion
  • file syncing like in owncloud/nextcloud


Command line clients

rclone

supports various interfaces
does parallel transfers
allows filtering a la rsync's
seems better behaved around large amounts of files than duck is
messages could be made more human-readable and/or computer-parseable
transfers while figuring out what to sync. Can be much faster than preparing first
https://rclone.org/


duck

https://duck.sh/
(supports the various protocols that cyberduck does)
parallel transfers itself
starts transfers only after completely preparing it. Worst case this can take much longer
https://trac.cyberduck.io/wiki/help/en/howto/cli


Cadaver (*nix, cygwin)

interface like CLI ftp
http://www.webdav.org/cadaver/


curl/libcurl (win, lin, osx, more[1])

https://curl.haxx.se/


(Haven't looked at yet):

Davix (lin, osx)

https://dmc.web.cern.ch/projects/davix/home


kioclient cp file.txt 'webdavs://user@webdav.example.com:443/'

DavCopy (win)

http://www.jamesitsolutions.com/techtips/davcopy.htm

nd

less featured than e.g. cadaver

hdav

low on features?


rclone notes

rclone aims to be an rsync-alike for a few handfuls of cloudy services.

..in that it selects by mtime+size (not the rolling-hash changes). Note that plain WebDAV does not expose mtime, but owncloud and nextcoud do and this is supported.


By default it will parallelize, and retry a bunch, so is relatively fast and robust.


To use:

  • create a named configuration for your remote site (stores an ini-like file in a place like ~/.config/rclone/rclone.conf), via
rclone config


Use the various subcommands, e.g.

rclone copy /home/source remotename:dirname    # copy to or from a remote location
rclone ls remote:                              # list directories (lsd), trees (ls)


Note that you can use filtering imitating rsync's, e.g.

rclone copy /local remote:rpath -f '+ *.jpg' -f '- *'

And tricks like

rclone lsf --files-only -R --format p remote:path >flist.txt #, editing that file, and doing
rclone copy remote:path local/path -v --include-from flist.txt


Notes:

  • use -n (--dry-run) to check that filtering does what you think it does
  • --stats timespec gives you that '#errors, #checked, #transferred, transferring:' summary at the given interval
(currently) only appears when also using -v
though in recent versions you can get it without -v via --stats timespec' --stats-log-level NOTICE


  • --log-level is similar to -v
-vv is DEBUG
-v is INFO
default is NOTICE (prints mostly errors)
-q is ERROR


See also:

duck notes

Don't use relative paths, it gets confused by them, with less-than-useful errors.


--existing / -e

  • -e resume appends existing files
  • -e skip skips files that exist at all
  • -e compare skips files that match size and modification date (and protocol allowing, checksum(verify))
  • -e overwrite overwrites all files that exist already
  • -e cancel
  • -e similar
  • -e rename uploads under a filename with a timestamp


See also:

curl notes

https://code.blogs.iiidefix.net/posts/webdav-with-curl/


GUI clients

Cyberduck (win, osx) (free)

WinSCP (win) (free)

KDE's conqueror (linux)

GNOME (linux)

  • File > Connect to
note: start the URL with dav: or davs:


Libraries/code

Unsorted

http://www.ics.uci.edu/~ejw/authoring/implementation.html


Mounting

Windows

davfs2 notes

uses neon


package name is davfs2

filesystem in fstab is is davfs