Skip to content

Latest commit

Β 

History

148 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

WebDavClient

logo

WebDavClient πŸš€

Download files via webdav easily. Use it to communicate to cloud storage provider (e.g. Nextcloud, ownCloud, Magenta, Synology NAS, QNAPS NAS) and automate your personal storage tasks.

Other solutions (on pyPI) did not fit my needs and/or were not actively maintained

For the official docs follow this link.

Linux x64 Β· build + test Linux arm64 Β· build + test Windows x64 Β· build + test Lint gates Automatic Dependency Submission CodeQL TopLang Donate Twitter YouTube

Table of Contents

About The Project

This module provides an easy interface for communication via WebDav protocol to a remote host (f.e. you can automate downloads from your cloud). For certain use cases one might want to be able to automatically download files from your cloud. This is an easy way to do it

Usage Example:

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)

Creating a WebDavClient also creates logs/ in the current working directory and logs to logs/downloadMd_s.log there. demo/download_markdown_files.py is the same example as a command-line script.

Key Features

Feature Implement Status
Download all files from remote host βœ”οΈ

Dependencies

Python β‰₯ 3.10 (requires-python in pyproject.toml), managed with uv.

  • Python dependencies are declared in pyproject.toml (the runtime set plus the tests and docs extras) and locked in uv.lock
./scripts/linux/ci_static_analysis.sh x64 3.13 > "ci_analysis_$(date +%Y%m%d_%H%M%S).log" 2>&1
  # 3.13: the newest interpreter the tests extra's atheris ships wheels for
  uv sync --all-extras --python 3.13

Useful tools

Getting Started

Prerequisites

Installation

  1. Clone the repo
    git clone --recurse-submodules git@github.com:Kataglyphis/WebDavClient.git

Tests

Run pytest in root directory (uv run pytest after the sync above) πŸ˜„ The WebDAV tests start a local mock server over tests/remote/, so no remote host is needed. The CI lanes run tests/unit only.

Roadmap

Upcoming :)

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

MIT β€” the text is in LICENSE.

Contact

Jonas Heinle - @Cataglyphis_ - jonasheinle@googlemail.com

Project Link: https://github.com/Kataglyphis/WebDavClient

Acknowledgements

Literature

Some very helpful literature, tutorials, etc.

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