-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WebDav: new remote type #1153
Comments
I'd like to work on this. Could you give someone directions where to look in the code for similar functionality and correct place to implement this one. |
@jurasan, in |
Which branch should I work on? |
@jurasan On master. Work on your dvc fork and send a PR when you are ready. Also please feel free to ping us if you need anything. |
@jurasan, in addition to @efiop response, we have a contributing guide that may help you with your PR: https://dvc.org/doc/user-guide/contributing/ |
box.com drops support for WebDav |
I'm now looking for a good python webdav library supporting python 2.7. Does anyone have experience with this or can hint any other library. |
@jurasan Unfortunately I don't have much experience with WebDav 🙁 I'm sure you've already considered it, but https://pypi.org/project/fs.webdavfs/ looks a bit more promising, supports 2.7 and looks somewhat maintained as a part of https://github.com/PyFilesystem/pyfilesystem2 . |
Thanks. I actually managed to miss it somehow. Generally it seems, that WebDav is dying slowly and we're lucky to at least have those. |
@jurasan I agree. Do you plan on using webdav driver yourself(if so, with which storage provider?), or are you working on a patch for fun? |
We have our internal company cloud that uses WebDav |
Ah, I see. Please don't hesitate to ping us if you need any help. |
This is still of interest, as I've got a project that is pushing to use Citrix ShareFile, which supports WebDav. Is WebDav support still actively being worked on? |
@garylschultz Our core team is not working on this (at least yet). But @jurasan seems to have been working on his patch, I'm not sure what state it is in though 🙁 @jurasan Maybe you need some help? Also, maybe @garylschultz will be willing to help out too 🙂 |
WebDAV support would also enable the use of private file-hosting solutions, like Nextcloud, Owncloud, and others. |
Webdav support is based on https://pypi.org/project/webdavclient3/ and supports basic download/upload operation, directory creation as well as existence, file hash and isdir query. Copy, move and remove are also implemented, though probably not used yet. WebdavURLInfo is taken from https://github.com/shizacat/dvc/tree/remote-webdav Fixes iterative#1153
Webdav token auth, certificate and key path and connection timeout are configurable. Webdav username might be specified or extracted from URL. Refs iterative#1153
This enables the WebDAV api location (e.g. '/public.php/webdav') to be part of the remote 'url' configuration instead of beeing specified separately via the 'root' option. The 'root' option may then be used to specify real directories at the WebDAV storage, although using it to set the api location is still possible. Refs iterative#1153
The WebDAV 'root' option was rather confusing and should be handled by the initial 'path_info' from the config 'url' option. Context: iterative#4256 (comment) While stripping the path/root from the hostname the port got lost, which is fixed now by simply using the URLInfo 'replace' method as suggested. Context: iterative#4256 (comment) The WebDAV client connection is tested by probing the existence of the root (self.path_info.path). Refs iterative#1153
* tree,remote: add support for webdav Webdav support is based on https://pypi.org/project/webdavclient3/ and supports basic download/upload operation, directory creation as well as existence, file hash and isdir query. Copy, move and remove are also implemented, though probably not used yet. WebdavURLInfo is taken from https://github.com/shizacat/dvc/tree/remote-webdav Fixes #1153 * tree,remote: add further webdavclient3 options Webdav token auth, certificate and key path and connection timeout are configurable. Webdav username might be specified or extracted from URL. Refs #1153 * tree,remote: validate webdav client configuration Refs #1153 * tree,remote: WebDAV is written with capitalized 'DAV'... Refs #1153 * tree,remote: terminate WebDAV makedirs at self.path_info.path This enables the WebDAV api location (e.g. '/public.php/webdav') to be part of the remote 'url' configuration instead of beeing specified separately via the 'root' option. The 'root' option may then be used to specify real directories at the WebDAV storage, although using it to set the api location is still possible. Refs #1153 * tree,remote: use >=3.14.5 for WebDAV dependency webdavclient3 Context: #4256 (comment) Refs #1153 * tree,remote: get rid of WebDAV 'root' option and add connection check The WebDAV 'root' option was rather confusing and should be handled by the initial 'path_info' from the config 'url' option. Context: #4256 (comment) While stripping the path/root from the hostname the port got lost, which is fixed now by simply using the URLInfo 'replace' method as suggested. Context: #4256 (comment) The WebDAV client connection is tested by probing the existence of the root (self.path_info.path). Refs #1153 * tree,remote: implement walk_files for WebDAV Context: #4256 (comment) Refs: #1153 * tree,remote: let WebDAV client list query file info in walk_files Context: #4256 (comment) Refs #1153 * tree,remote: add some unit tests for WebDAVTree Refs #1153 * tree,remote: use ConfigError for WebDAVTree and move Error to webdav.py Context: #4256 (comment) Refs #1153 * tree,remote: remove/change some (unnecessary) comments Context: #4256 (comment) * tree,remote: uploading to WebDAV only create directories if not exist * tree,remote: add BaseTree parameter use_dvcignore to WebDAVTree exists Refs iterative/#1153 * tree,remote: remove WebDAVTree copy method as proposed Context: #4256 (comment) Refs #1153 * tree,remote: add progress bar to WebDAV _download and _upload method Context: #4256 (comment) Refs #1153 Co-authored-by: Christoph Berganski <christoph.berganski@uni-bielefeld.de>
WebDav is a quite common protocol for file sharing.
It is especially convenient because box.com provides 10Gb free and supports WebDav.
The text was updated successfully, but these errors were encountered: