This release is a pre-release and may not be stable for production use.
simple-dav-client
A minimal, robust command-line client for interacting with a WebDAV server over plain HTTP with no authentication.
Features
- List (
ls): List remote files or directories. - Upload (
put): Upload local files or directories (recursively) to a remote directory. - Download (
get): Download remote files or directories (recursively) to a local directory. - Create (
mkdir): Create directories on the remote server (optionally recursively). - Remove (
rm): Delete remote files or directories (recursively).
Design
This tool is designed for maximum clarity and correctness:
- ✅ No Authentication / No HTTPS: This client uses only HTTP (not HTTPS), and does not support authentication, cookies, or custom headers. Simplicity was prioritized for trusted, local/test servers.
- ✅ Fail Fast & Loudly: If any network, connection, or server error occurs, the tool will abort and display an error message. No retry, fallback, or silent handling is implemented by design.
- ✅ Path Tokenization: All local and remote paths are tokenized using the
fspathverbslibrary, and all internal APIs use tokenized paths. This ensures reliable, traversal-safe handling and robust operation across platforms and server configurations. - ✅ Recursive Operations: Both uploads and downloads automatically recurse into directories, preserving
directory hierarchies for both local-to-remote and remote-to-local transmissions.
- This client uses the classic Command Pattern.
- All uploads (
put) and downloads (get) are performed by first compiling a list ofPutActionandGetActionoperation objects that describe exactly what needs to be done, then executing in strict order. - This allows for clean error reporting, separation of planning and execution, and makes future extensions ( logging, dry runs, previews, etc.) straightforward.
- All uploads (
- This client uses the classic Command Pattern.
- ✅ Strong Code Separation: Command-line parsing/dispatch is cleanly separated from the core logic for clarity and maintainability.
Installation
pip install simple-dav-client
After installation, run it as simple_dav_client.
Usage
List a remote file or directory:
simple_dav_client --host localhost --port 8080 ls /remote/file-or-directory
Download a remote file or directory to ./local:
simple_dav_client --host localhost --port 8080 get -O ./local /remote/file-or-directory
Upload a local file or directory to /remote:
simple_dav_client --host localhost --port 8080 put -O /remote ./local/file-or-directory
Create a remote directory (including parent directories):
simple_dav_client --host localhost --port 8080 mkdir -p /remote/child-directory
Remove a remote file or directory:
simple_dav_client --host localhost --port 8080 rm /remote/file-or-directory
Contributing
Contributions are welcome! Please submit pull requests or open issues on the GitHub repository.
License
This project is licensed under the MIT License.
Release files for simple-dav-client 0.1.0a3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| simple_dav_client-0.1.0a3.tar.gz | 9.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| simple_dav_client-0.1.0a3-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 18.6 kB
Release files / simple_dav_client-0.1.0a3.tar.gz
| Download URL | simple_dav_client-0.1.0a3.tar.gz |
|---|---|
| Size | 9.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ad61a35484d77ac48e0ccaa5c48d066e34ded15f8422307c4ca7a3d29205a492
|
|
BLAKE2b-256 checksum How to use checksums |
a1cfb4a1618d41b6534c57b5c976c9e0d8fc79963c48378470f086a9de3315e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / simple_dav_client-0.1.0a3-py2.py3-none-any.whl
| Download URL | simple_dav_client-0.1.0a3-py2.py3-none-any.whl |
|---|---|
| Size | 9.5 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
978d208efa526d7618a839059028505a88b9f68b083c142276de17b7914f295d
|
|
BLAKE2b-256 checksum How to use checksums |
43a4f9e8e4992b60dd742bb9d15f343be02c158f724d2e732bed84157736d679
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|