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)
| File | Size | Uploaded | |
|---|---|---|---|
| aioeasywebdav-2.4.0.tar.gz | 15.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 |