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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.