Synchronization command line for WebDav.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pydavsync-0.1.0.tar.gz
.
File metadata
- Download URL: pydavsync-0.1.0.tar.gz
- Upload date:
- Size: 15.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f143a35f4e198cb719e228b5cdcffdbbd2af0087f78944376853bf33338a73ca |
|
MD5 | 9c9319b9ff2cd3bfb0fa67b44565cda0 |
|
BLAKE2b-256 | d904a24c21f5d1db9b4bbd1bf08e73ebda739737e22d1faaafa191e4c863c0eb |
File details
Details for the file pydavsync-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: pydavsync-0.1.0-py3-none-any.whl
- Upload date:
- Size: 21.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21c954400b50f8b634cd59a488497131c047a7eefb13de8ec24ae979cf494109 |
|
MD5 | 9b42dc0235c0a74c152c8758ab47d211 |
|
BLAKE2b-256 | e012d8e238a92675f51e64dd4a977fb399fd3d2f8bf38be94460b36b14c1d1ea |