Skip to content

About

馃悎 WebDav client for easily download files and folders from your data storage (f.e. cloud, NAS) automatically. Helpful in scenarios like CI to get data from remote. 馃悎

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

聽

History

230 Commits

Folders and files

NameName
Last commit message
Last commit date
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽
聽

Repository files navigation

WebDavClient logo: an ant carrying a file down from a cloud

WebDavClient

Download files and folders from WebDAV storage.

Linux x64 路 build + test Linux arm64 路 build + test Windows x64 路 build + test Windows arm64 路 test + wheels Lint gates CodeQL TopLang Donate Twitter YouTube

Docs site

WebDavClient is a Python package that downloads files and folders from a WebDAV host. Use it to communicate to a cloud storage provider (e.g. Nextcloud, ownCloud, Magenta, Synology NAS, QNAP NAS) and automate your personal storage tasks, in CI for example. Other solutions on PyPI did not fit my needs and/or were not actively maintained.

Highlights

  • Downloads a whole remote folder, subfolders included, keeping its structure (download_all_files_iterative).
  • Binary wheels for Linux x64/arm64 and Windows x64/arm64, the pinned CPython with and without the GIL (cp314 and cp314t in v0.10.1).
  • A pure-Python wheel that installs anywhere, and a SHA256SUMS with every release.
  • Every module compiled with Cython, the sources stripped from the binary wheels.
  • Safe across threads: each download writes a private .part file and renames it into place.
  • Tested against a local mock WebDAV server, so no remote host is needed.

Quick start

git clone --recurse-submodules --branch develop https://github.com/Kataglyphis/WebDavClient.git
cd WebDavClient
uv sync --all-extras --python 3.15   # the pinned CPython; 3.15t for the free-threaded build
from kataglyphis_webdavclient.webdavclient import WebDavClient

hostname = "https://yourhost.de/webdav"
username = "Schlawiner23"
password = "YOUR_PERSONAL_TOKEN"
remote_base_path = "MyProjectFolder"
local_base_path = "assets"
webdevclient = WebDavClient(hostname, username, password)
webdevclient.download_all_files_iterative(remote_base_path, local_base_path)

Filter with extension=".md"; downloads raise on HTTP, listing or unsafe-path errors. Release wheels, logging, the demo script and the tests: docs/source/getting-started.md.

Documentation

Topic Read
Getting started: installation, usage, tests, static analysis docs/source/getting-started.md
The API docs/source/webdavclient.rst, rendered on the docs site
Rules for agents and contributors AGENTS.md
Changes CHANGELOG.md

Contributing and contact

WebDavClient is one of the Kataglyphis repositories, which share one way to contribute and one contact. Licence: MIT, see LICENSE.

About

馃悎 WebDav client for easily download files and folders from your data storage (f.e. cloud, NAS) automatically. Helpful in scenarios like CI to get data from remote. 馃悎

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

Generated from Kataglyphis/template