Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydavsync-0.1.0.tar.gz (15.3 kB view details)

Uploaded Source

Built Distribution

pydavsync-0.1.0-py3-none-any.whl (21.7 kB view details)

Uploaded Python 3

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

Hashes for pydavsync-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f143a35f4e198cb719e228b5cdcffdbbd2af0087f78944376853bf33338a73ca
MD5 9c9319b9ff2cd3bfb0fa67b44565cda0
BLAKE2b-256 d904a24c21f5d1db9b4bbd1bf08e73ebda739737e22d1faaafa191e4c863c0eb

See more details on using hashes here.

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

Hashes for pydavsync-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 21c954400b50f8b634cd59a488497131c047a7eefb13de8ec24ae979cf494109
MD5 9b42dc0235c0a74c152c8758ab47d211
BLAKE2b-256 e012d8e238a92675f51e64dd4a977fb399fd3d2f8bf38be94460b36b14c1d1ea

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page