ASGIWebDAV


NameASGIWebDAV JSON
Version 1.4.0 PyPI version JSON
download
home_pageNone
SummaryAn asynchronous WebDAV server implementation, support multi-provider.
upload_time2024-03-20 05:22:04
maintainerNone
docs_urlNone
authorRex Zhang
requires_python>=3.10
licenseMIT
keywords webdav asgi asyncio
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            # ASGI WebDAV Server

![GitHub](https://img.shields.io/github/license/rexzhang/asgi-webdav)
[![PyPI](https://img.shields.io/pypi/v/ASGIWebDAV)](https://pypi.org/project/ASGIWebDAV)
![Pytest Workflow Status](https://github.com/rexzhang/asgi-webdav/actions/workflows/check-pytest.yml/badge.svg)
[![codecov](https://codecov.io/gh/rexzhang/asgi-webdav/branch/main/graph/badge.svg?token=6D961MCCWN)](https://codecov.io/gh/rexzhang/asgi-webdav)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Docker Pulls](https://img.shields.io/docker/pulls/ray1ex/asgi-webdav)](https://hub.docker.com/r/ray1ex/asgi-webdav)
![[PyPI - Downloads](https://pypi.org/project/ASGIWebDAV/)](https://img.shields.io/pypi/dm/ASGIWebDAV)
[![GitHub Downloads](https://img.shields.io/github/downloads/rexzhang/asgi-webdav/total)](https://github.com/rexzhang/asgi-webdav/releases)

An asynchronous WebDAV server implementation, Support multi-provider, multi-account and permission control.

## Features

- [ASGI](https://asgi.readthedocs.io) standard
- WebDAV standard: [RFC4918](https://www.ietf.org/rfc/rfc4918.txt)
- Support multi-provider: FileSystemProvider, MemoryProvider
- Support multi-account and permission control
- Support optional home directory
- Support store password in raw/hashlib/LDAP(experimental) mode
- Full asyncio file IO
- Passed all [litmus(0.13)](http://www.webdav.org/neon/litmus) test, except 3 warning
- Browse the file directory in the browser
- Support HTTP Basic/Digest authentication
- Support response in Gzip/Brotli
- Compatible with macOS finder and Window10 Explorer

## Python Version

v3.10+

## Quickstart

[δΈ­ζ–‡ζ‰‹ε†Œ](https://rexzhang.github.io/asgi-webdav/zh/)

```shell
docker pull ray1ex/asgi-webdav
docker run -dit --restart unless-stopped \
  -p 8000:8000 \
  -e UID=1000 -e GID=1000 \
  -v /your/data:/data \
  --name asgi-webdav ray1ex/asgi-webdav
```

## Default Account

|            | value      | description                     |
| ---------- | ---------- | ------------------------------- |
| username   | `username` | -                               |
| password   | `password` | -                               |
| permission | `["+"]`    | Allow access to all directories |

## View in Browser

![View in Browser](docs/web-dir-browser-screenshot.png)

## Documentation

[Documentation at GitHub Page](https://rexzhang.github.io/asgi-webdav/)

## TODO

- Digest auth support neon
- SQL database provider
- Test big(1GB+) file in MemoryProvider
- display server info in page `/_/admin` or `/_/`
- Fail2ban(docker)
- NFSProvider
- logout at the web page
- Fix MemoryProvider with macOS finder(create new file)
- rewrite MemoryProvider with mmap
- generate template URL for share(read only)

## Related Projects

- <https://github.com/bootrino/reactoxide>

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ASGIWebDAV",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "webdav, asgi, asyncio",
    "author": "Rex Zhang",
    "author_email": "rex.zhang@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/dd/fb/bd8ddceee111f97605bbf60f9d3fa286640173b06772298fc57f12c4820c/ASGIWebDAV-1.4.0.tar.gz",
    "platform": null,
    "description": "# ASGI WebDAV Server\n\n![GitHub](https://img.shields.io/github/license/rexzhang/asgi-webdav)\n[![PyPI](https://img.shields.io/pypi/v/ASGIWebDAV)](https://pypi.org/project/ASGIWebDAV)\n![Pytest Workflow Status](https://github.com/rexzhang/asgi-webdav/actions/workflows/check-pytest.yml/badge.svg)\n[![codecov](https://codecov.io/gh/rexzhang/asgi-webdav/branch/main/graph/badge.svg?token=6D961MCCWN)](https://codecov.io/gh/rexzhang/asgi-webdav)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Docker Pulls](https://img.shields.io/docker/pulls/ray1ex/asgi-webdav)](https://hub.docker.com/r/ray1ex/asgi-webdav)\n![[PyPI - Downloads](https://pypi.org/project/ASGIWebDAV/)](https://img.shields.io/pypi/dm/ASGIWebDAV)\n[![GitHub Downloads](https://img.shields.io/github/downloads/rexzhang/asgi-webdav/total)](https://github.com/rexzhang/asgi-webdav/releases)\n\nAn asynchronous WebDAV server implementation, Support multi-provider, multi-account and permission control.\n\n## Features\n\n- [ASGI](https://asgi.readthedocs.io) standard\n- WebDAV standard: [RFC4918](https://www.ietf.org/rfc/rfc4918.txt)\n- Support multi-provider: FileSystemProvider, MemoryProvider\n- Support multi-account and permission control\n- Support optional home directory\n- Support store password in raw/hashlib/LDAP(experimental) mode\n- Full asyncio file IO\n- Passed all [litmus(0.13)](http://www.webdav.org/neon/litmus) test, except 3 warning\n- Browse the file directory in the browser\n- Support HTTP Basic/Digest authentication\n- Support response in Gzip/Brotli\n- Compatible with macOS finder and Window10 Explorer\n\n## Python Version\n\nv3.10+\n\n## Quickstart\n\n[\u4e2d\u6587\u624b\u518c](https://rexzhang.github.io/asgi-webdav/zh/)\n\n```shell\ndocker pull ray1ex/asgi-webdav\ndocker run -dit --restart unless-stopped \\\n  -p 8000:8000 \\\n  -e UID=1000 -e GID=1000 \\\n  -v /your/data:/data \\\n  --name asgi-webdav ray1ex/asgi-webdav\n```\n\n## Default Account\n\n|            | value      | description                     |\n| ---------- | ---------- | ------------------------------- |\n| username   | `username` | -                               |\n| password   | `password` | -                               |\n| permission | `[\"+\"]`    | Allow access to all directories |\n\n## View in Browser\n\n![View in Browser](docs/web-dir-browser-screenshot.png)\n\n## Documentation\n\n[Documentation at GitHub Page](https://rexzhang.github.io/asgi-webdav/)\n\n## TODO\n\n- Digest auth support neon\n- SQL database provider\n- Test big(1GB+) file in MemoryProvider\n- display server info in page `/_/admin` or `/_/`\n- Fail2ban(docker)\n- NFSProvider\n- logout at the web page\n- Fix MemoryProvider with macOS finder(create new file)\n- rewrite MemoryProvider with mmap\n- generate template URL for share(read only)\n\n## Related Projects\n\n- <https://github.com/bootrino/reactoxide>\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "An asynchronous WebDAV server implementation, support multi-provider.",
    "version": "1.4.0",
    "project_urls": {
        "changelog": "https://github.com/rexzhang/asgi-webdav/blob/main/docs/changelog.en.md",
        "documentation": "https://rexzhang.github.io/asgi-webdav/",
        "homepage": "https://github.com/rexzhang/asgi-webdav",
        "repository": "https://github.com/rexzhang/asgi-webdav"
    },
    "split_keywords": [
        "webdav",
        " asgi",
        " asyncio"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d105c485ca71b061f4952941e2311cfe7f738658efed3f5d0df14cab598440b5",
                "md5": "a66a2991d107341824e83f7c253453b4",
                "sha256": "b8549762ec9f61888c1ef313f9cda40df4759a8f0a1cbcbf7c00d5c42817d911"
            },
            "downloads": -1,
            "filename": "ASGIWebDAV-1.4.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a66a2991d107341824e83f7c253453b4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 58576,
            "upload_time": "2024-03-20T05:22:02",
            "upload_time_iso_8601": "2024-03-20T05:22:02.350826Z",
            "url": "https://files.pythonhosted.org/packages/d1/05/c485ca71b061f4952941e2311cfe7f738658efed3f5d0df14cab598440b5/ASGIWebDAV-1.4.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ddfbbd8ddceee111f97605bbf60f9d3fa286640173b06772298fc57f12c4820c",
                "md5": "af30f264ed79b81fbf8611e1fae2e07a",
                "sha256": "7b1baeddd63440772f6ad3bd62f9f2545286d4d5a0b4e3c548a805ecdefe4206"
            },
            "downloads": -1,
            "filename": "ASGIWebDAV-1.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "af30f264ed79b81fbf8611e1fae2e07a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 59626,
            "upload_time": "2024-03-20T05:22:04",
            "upload_time_iso_8601": "2024-03-20T05:22:04.135603Z",
            "url": "https://files.pythonhosted.org/packages/dd/fb/bd8ddceee111f97605bbf60f9d3fa286640173b06772298fc57f12c4820c/ASGIWebDAV-1.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-20 05:22:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "rexzhang",
    "github_project": "asgi-webdav",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [],
    "lcname": "asgiwebdav"
}
        
Elapsed time: 0.21525s