Skip to main content

This project started as a port of the requests-based EasyWebDAV ( http://github.com/amnong/easywebdav ) to asyncio on Python 3.5. It has since been extended with additional features.

Features

  • Basic authentication

  • Creating directories, removing directories and files

  • Uploading and downloading files

  • Directory listing

  • Support for client side SSL certificates

  • Fragmented download (multiple chunks in simultaneous streams)

  • MD5 checksum validation when used with OwnCloud/Nextcloud webdav

  • Progress tracking/reporting via callback system

Installation

Install using distribute:

pip install aioeasywebdav

Quick Start

import aioeasywebdav
loop = asyncio.get_event_loop()

# Start off by creating a client object. Username and
# password may be omitted if no authentication is needed.
webdav = aioeasywebdav.connect('webdav.your-domain.com', username='myuser', password='mypass')

# Do some stuff:
loop.run_until_complete(webdav.mkdir('some_dir'))
loop.run_until_complete(webdav.rmdir('another_dir'))

async def fn():
    await webdav.download('/remote/path/to/file', '/local/target/file')
    await webdav.upload('/local/path/to/file', '/remote/target/file')
loop.run_until_complete(fn())

Client object API

The API is pretty much self-explanatory:

cd(path)
ls(path=None)
exists(remote_path)
mkdir(path, safe=False)
mkdirs(path)
rmdir(path, safe=False)
delete(file_path)
upload(local_path_or_fileobj, remote_path)
download(remote_path, local_path)

Using clientside SSL certificate

webdav = aioeasywebdav.connect('secure.example.net',
                               username='user',
                               password='pass',
                               protocol='https',
                               cert="/path/to/your/certificate.pem")
# Do some stuff:
print(await webdav.ls())

Please note that all options and restriction regarding the “cert” parameter from Requests API apply here as the parameter is only passed through!

Developing aioEasyWebDAV

Working with a virtual environment is highly recommended:

virtualenv --no-site-packages aioeasywebdav_dev
source aioeasywebdav_dev/bin/activate

Installing the library in development-mode:

EASYWEBDAV_DEV=1 python setup.py develop

The first part of the command causes setup.py to install development dependencies, in addition to the normal dependencies.

Running the tests:

nosetests --with-yanc --nologcapture --nocapture tests

Running the tests with WebDAV server logs:

WEBDAV_LOGS=1 nosetests --with-yanc --nologcapture --nocapture -v tests

Metadata

Release files for aioeasywebdav 2.4.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 aioeasywebdav 2.4.0
File Size Uploaded
aioeasywebdav-2.4.0.tar.gz 15.3 kB Details

Built distribution (wheel)

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

Total release size: 26.0 kB

Release files / aioeasywebdav-2.4.0.tar.gz

Download URL aioeasywebdav-2.4.0.tar.gz
Size 15.3 kB
Tags Source
SHA-256 checksum
How to use checksums
216aa71e76bf810c2293fec93922475a532af999fce89b37b6788f0c237981ee
BLAKE2b-256 checksum
How to use checksums
f747526a1ca91d442cd49eb35791137b68b14aaa1f4e00c635fcf863af642f96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / aioeasywebdav-2.4.0-py3-none-any.whl

Download URL aioeasywebdav-2.4.0-py3-none-any.whl
Size 10.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e4b760697ba23831bff41f2e9ce37b46dd9503d8aa0ba8d6e680842879ebb603
BLAKE2b-256 checksum
How to use checksums
5bc6761700c7748252cf1e73f6b11238d74ee786d833c06fe1d13260f3f1e3aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

2.4.0 This release

2 release files

2.3.0

2 release files

2.2.0

1 release file

2.1.0

1 release file

2.0.0

1 release file

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