Skip to main content

pydavsync

A command line to synchronize files with WebDav servers, written in Python.

Name

The foundational idea was to have a similar command line and behavior to rsync, but for WebDav servers. davsync is the logical name. But I started to implement it in Rust, then in Python, and I decided to integrate the development language in the name. Thus pydavsync for the Python implementation.

Description

rsync allows to synchronize files over a SSH connection. pydavsync has been developed to do the same over a WebDav connection.

The command line is not identical because compatibility is not a goal, and some new ideas emerged while developing pydavsync.

The following operations can be done :

  • Synchronization from local filesystem to WebDav server
  • Synchronization from WebDav server to local filesystem
  • Synchronization from WebDav server to WebDav server (not necessarily the same)

Here are some of the features :

  • dry run
  • verbose output
  • login/password given through command line options
  • synchronization based on modified time and file size
  • deletion when files disappear

Webdav?

Webdav is used to manage files on remote servers using HTTP.

The primary motivation was to use pydavsync with Nextcloud which is compatible with webdav. But there are many other services accepting webdav.

Installation

pydavsync is available on Pypi.org and can be installed using pip. Many options are available to you, do as you please.

pip install pydavsync

Usage

Once installed, the program pydavsync should be available in your terminal.

To get help, use pydavsyncc --help.

Here is an example to synchronize files from a webdav server to a local directory.

$ pydavsync --src-user Username --src-pass Password --verbose https://my-server.org/path/to/my/directory /path/to/local/directory

Support

If you have a question or need help, please open an issue and tag it with the ~support label.

Roadmap

Future developments:

  • Synchronization from local to webdav (and consequently from webdav to webdav)
  • Smarter synchronization if source and destination are both the same webdav server.
  • Better tests with mocks to simulate a webdav server.
  • A man page.
  • New and optional means to check if a file has changed or not.

Contributing

  • Firstly, you can open a new issue if you find a bug or have an improvement idea.
  • Any help to test the tool on various systems and Webdav servers is appreciated, as I did not checked many of these myself.
  • If you feel like coding, please fork the repository and do a merge request. It will be reviewed. Don’t forget to mention issues in your comments if you fix some of them!

Authors and acknowledgment

Main author: Romain TAPREST ✉

License

This project is under the Mozilla Public License Version 2.0.

Project status

🧡 This project is alive! Not frequent updates, but it is not abandoned.

Metadata

Release files for pydavsync 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pydavsync 0.1.0
File Size Uploaded Provenance Actions
pydavsync-0.1.0.tar.gz 15.3 kB Without provenance Details for pydavsync-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pydavsync 0.1.0
File Interpreter ABI Platform Actions
pydavsync-0.1.0-py3-none-any.whl Python 3 none any Details for pydavsync-0.1.0-py3-none-any.whl

Total release size: 37.0 kB

Release files / pydavsync-0.1.0.tar.gz

Download URL pydavsync-0.1.0.tar.gz
Size 15.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f143a35f4e198cb719e228b5cdcffdbbd2af0087f78944376853bf33338a73ca
BLAKE2b-256 checksum
How to use checksums
d904a24c21f5d1db9b4bbd1bf08e73ebda739737e22d1faaafa191e4c863c0eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.16

Release files / pydavsync-0.1.0-py3-none-any.whl

Download URL pydavsync-0.1.0-py3-none-any.whl
Size 21.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
21c954400b50f8b634cd59a488497131c047a7eefb13de8ec24ae979cf494109
BLAKE2b-256 checksum
How to use checksums
e012d8e238a92675f51e64dd4a977fb399fd3d2f8bf38be94460b36b14c1d1ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.8.16

Security for pydavsync 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page