Skip to main content

WebDAV server for AliyunDrive

Project description

aliyundrive-webdav

GitHub Actions PyPI Docker Image aliyundrive-webdav Crates.io

🚀 Help me to become a full-time open-source developer by sponsoring me on GitHub

阿里云盘 WebDAV 服务,主要使用场景为配合支持 WebDAV 协议的客户端 App 如 InfusenPlayer 等实现在电视上直接观看云盘视频内容, 支持上传文件,但受限于 WebDAV 协议不支持文件秒传。

如果你使用 Emby 或者 Jellyfin,也可以试试 aliyundrive-fuse 项目。

如果项目对你有帮助,请考虑捐赠支持项目持续维护。

Note

本项目作者没有上传需求, 故上传文件功能测试不全面且没有持续迭代计划. 如果你很需要上传功能, 可考虑付费技术支持.

特别赞助

安装

可以从 GitHub Releases 页面下载预先构建的二进制包, 也可以使用 pip 从 PyPI 下载:

pip install aliyundrive-webdav

如果系统支持 Snapcraft 比如 Ubuntu、Debian 等,也可以使用 snap 安装:

sudo snap install aliyundrive-webdav

OpenWrt 路由器

GitHub Releases 中有预编译的 ipk 文件, 目前提供了 aarch64/arm/mipsel/x86_64/i686 等架构的版本,可以下载后使用 opkg 安装,以 nanopi r4s 为例:

wget https://github.com/messense/aliyundrive-webdav/releases/download/v1.7.4/aliyundrive-webdav_1.7.4-1_aarch64_generic.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v1.7.4/luci-app-aliyundrive-webdav_1.7.4_all.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v1.7.4/luci-i18n-aliyundrive-webdav-zh-cn_1.7.4-1_all.ipk
opkg install aliyundrive-webdav_1.7.4-1_aarch64_generic.ipk
opkg install luci-app-aliyundrive-webdav_1.7.4_all.ipk
opkg install luci-i18n-aliyundrive-webdav-zh-cn_1.7.4-1_all.ipk

其它 CPU 架构的路由器可在 GitHub Releases 页面中查找对应的架构的主程序 ipk 文件下载安装, 常见 OpenWrt 路由器 CPU 架构如下表(欢迎补充):

路由器 CPU 架构
nanopi r4s aarch64_generic
小米 AX3600 aarch64_cortex-a53
斐讯 N1 盒子 aarch64_cortex-a53
Newifi D2 mipsel_24kc
Pogoplug arm_mpcore

Tips: 不清楚 CPU 架构类型可通过运行 opkg print-architecture 命令查询。

OpenWrt 配置界面

Koolshare 梅林固件

GitHub Releases 中有预编译包 aliyundrivewebdav-merlin-arm*.tar.gz , 目前提供了旧的 arm380 和兼容 arm384/386 固件的版本,可在下载后在软件中心离线安装。

梅林配置界面

Docker 运行

docker run -d --name=aliyundrive-webdav --restart=unless-stopped -p 8080:8080 \
  -v /etc/aliyundrive-webdav/:/etc/aliyundrive-webdav/ \
  -e REFRESH_TOKEN='your refresh token' \
  -e WEBDAV_AUTH_USER=admin \
  -e WEBDAV_AUTH_PASSWORD=admin \
  messense/aliyundrive-webdav

其中,REFRESH_TOKEN 环境变量为你的阿里云盘 refresh_tokenWEBDAV_AUTH_USERWEBDAV_AUTH_PASSWORD 为连接 WebDAV 服务的用户名和密码。

QNAP 威联通 NAS

QNAP 插件

qnap-aliyunpan-webdav by @iranee.

ContainerStation (Docker)

管理员登陆 NAS 后安装 ContainerStation 并启动服务,在 Management (管理) 标签中 Create Application (新建应用),配置如下

version: '3.3'
services:
  aliyundrive-webdav:
    container_name: aliyundrive-webdav
    restart: unless-stopped
    ports:
      - '8080:8080'
    environment:
      - 'REFRESH_TOKEN=mytoken...'
    image: messense/aliyundrive-webdav

其中 REFRESH_TOKEN 文档最下面说明;:8080 网盘访问映射端口,可以按需改为其他的。

点击 Create (创建)后启动,访问 http://nas地址:8080/ 即可看到你网盘的自动生成索引网页文件。

参考文档

命令行用法

$ aliyundrive-webdav --help
aliyundrive-webdav 1.7.4
WebDAV server for AliyunDrive

USAGE:
    aliyundrive-webdav [OPTIONS]
    aliyundrive-webdav <SUBCOMMAND>

OPTIONS:
        --cache-size <CACHE_SIZE>                Directory entries cache size [default: 1000]
        --cache-ttl <CACHE_TTL>                  Directory entries cache expiration time in seconds [default: 600]
        --debug                                  Enable debug log
        --domain-id <DOMAIN_ID>                  Aliyun PDS domain id
    -h, --help                                   Print help information
        --host <HOST>                            Listen host [env: HOST=] [default: 0.0.0.0]
    -I, --auto-index                             Automatically generate index.html
        --no-self-upgrade                        Disable self auto upgrade
        --no-trash                               Delete file permanently instead of trashing it
    -p, --port <PORT>                            Listen port [env: PORT=] [default: 8080]
    -r, --refresh-token <REFRESH_TOKEN>          Aliyun drive refresh token [env: REFRESH_TOKEN=]
        --read-only                              Enable read only mode
        --root <ROOT>                            Root directory path [default: /]
    -S, --read-buffer-size <READ_BUFFER_SIZE>    Read/download buffer size in bytes, defaults to 10MB [default: 10485760]
        --strip-prefix <STRIP_PREFIX>            Prefix to be stripped off when handling request [env: WEBDAV_STRIP_PREFIX=]
        --tls-cert <TLS_CERT>                    TLS certificate file path [env: TLS_CERT=]
        --tls-key <TLS_KEY>                      TLS private key file path [env: TLS_KEY=]
    -U, --auth-user <AUTH_USER>                  WebDAV authentication username [env: WEBDAV_AUTH_USER=]
    -V, --version                                Print version information
    -w, --workdir <WORKDIR>                      Working directory, refresh_token will be stored in there if specified
    -W, --auth-password <AUTH_PASSWORD>          WebDAV authentication password [env: WEBDAV_AUTH_PASSWORD=]

SUBCOMMANDS:
    help    Print this message or the help of the given subcommand(s)
    qr      Scan QRCode

注意:TLS/HTTPS 暂不支持 MIPS 架构。

获取 refresh_token

  • 自动获取: 登录阿里云盘后,控制台粘贴 JSON.parse(localStorage.token).refresh_token

  • 手动获取: 登录阿里云盘后,可以在开发者工具 -> Application -> Local Storage 中的 token 字段中找到。
    注意:不是复制整段 JSON 值,而是 JSON 里 refresh_token 字段的值,如下图所示红色部分: refresh token

  • 命令行获取: aliyundrive-webdav qr login

  • 使用移动端 App refresh token: 需要在其前增加 app: 前缀,如 refresh token 为 abcd 则填入 app:abcd

License

This work is released under the MIT license. A copy of the license is provided in the LICENSE file.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

aliyundrive_webdav-1.7.4-py3-none-win_arm64.whl (3.2 MB view details)

Uploaded Python 3 Windows ARM64

aliyundrive_webdav-1.7.4-py3-none-win_amd64.whl (4.1 MB view details)

Uploaded Python 3 Windows x86-64

aliyundrive_webdav-1.7.4-py3-none-win32.whl (3.8 MB view details)

Uploaded Python 3 Windows x86

aliyundrive_webdav-1.7.4-py3-none-musllinux_1_1_x86_64.whl (4.0 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

aliyundrive_webdav-1.7.4-py3-none-musllinux_1_1_i686.whl (3.9 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ i686

aliyundrive_webdav-1.7.4-py3-none-musllinux_1_1_armv7l.whl (3.6 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

aliyundrive_webdav-1.7.4-py3-none-musllinux_1_1_aarch64.whl (3.6 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-1.7.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.6 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARMv7l

aliyundrive_webdav-1.7.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.6 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

aliyundrive_webdav-1.7.4-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (4.0 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ x86-64

aliyundrive_webdav-1.7.4-py3-none-manylinux_2_5_i686.manylinux1_i686.whl (3.9 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ i686

aliyundrive_webdav-1.7.4-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (7.2 MB view details)

Uploaded Python 3 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64

aliyundrive_webdav-1.7.4-py3-none-macosx_10_7_x86_64.whl (3.8 MB view details)

Uploaded Python 3 macOS 10.7+ x86-64

File details

Details for the file aliyundrive_webdav-1.7.4-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.4-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 435d8de9b4cab5a5c54eb88c6e0824014acfd9980022fce4e04935ddad63ca29
MD5 47873a40102383d936f76020aeff716d
BLAKE2b-256 7eae2feb12406db8eff80eea49b4c08928a0a1b9577aece4cbced473ea2e7886

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.7.4-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.4-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 f41167e4bcc737e3158986d926bc29253f9b673a866b6b9da58fc669bf66b3e1
MD5 3a409fe1e3d348cd663cc8a7292209d8
BLAKE2b-256 0bab021ffd96003ae8957ab0de448b25643a18d3d28f89e72c55fbce0846364a

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.7.4-py3-none-win32.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.4-py3-none-win32.whl
Algorithm Hash digest
SHA256 b66a40d15b37b988cb2780fef4ad2a89312b19d268f42d8ae10f0331a3021e7b
MD5 2c316d69a8ffbc1b67d50462ace13e2c
BLAKE2b-256 be4732850db1649bb00435cd254270ad55f224ca171cb6cb30de8018a308ad0d

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.7.4-py3-none-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.4-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1af41c468b6a0f8f74e1e67b55eb78010a7248a182c571e9fe94aac075e5fa48
MD5 1a6e2ef2a93436d064bed1e7a83cc9ec
BLAKE2b-256 6d6f9b51ee130b337f8346c35b2d14e887db28f846f7c7ead9004db29075b7d9

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.7.4-py3-none-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.4-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 3402dbd81a09f423643eb58c01a3303fbac030ac0d9fcf431441cdbf3b1c3ae8
MD5 a67f581503c011c3e3271abaf927213a
BLAKE2b-256 8662f212b6511171042249eec1a49c5486807e53f118bdb45f6af4ab08983b2c

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.7.4-py3-none-musllinux_1_1_armv7l.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.4-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 4d6da23aac2b991fa56d0b99dc61b9a6741aa5410103adbdcee7795617b9e915
MD5 92620e6b0319cf196f19686baa4d1516
BLAKE2b-256 e4870f8ab57ad9159a13d2b400cdcb84fa75e4c21632a16f27543a10ccaa5ffc

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.7.4-py3-none-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.4-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 b015de0dd215617eadcd7080bfe42673e5117f91d56298507ee8b380d2a1f808
MD5 04bf88b0ad3e488a197664289c576c6e
BLAKE2b-256 4c99d5757ff11d035b507b6887d1a0e02226a213143243db37f155255a0da659

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.7.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 d9b36009b50d18484ad44e342a34a5824188d577525729f5aa6dedc197c12d8f
MD5 6fabc166100cf664ab9af8a253f0ce1f
BLAKE2b-256 b36c8395a35871d438eef496ac731fe64b02533d861e20f18727da062173b776

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.7.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fbfca606f0780078857f7610bd1876d408b04834c8605ef9b6f58e04205dbaa6
MD5 417fa7aa6ff5fcd76ef02bf42406e900
BLAKE2b-256 7f9bc2ea2f7374de8b74398a9451688efa57417cb1f0e9d859e8045234b1cbd7

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.7.4-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.4-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 982805d63f422f49144fc69bc0552dbdf241f60b20ef627ce12f63325e2eeb91
MD5 98b59e7a7d5d3c003631579b924cf7d3
BLAKE2b-256 5c50a0619e2755fee7b34fd7ae2a22e9bacba585f7012f6e5899adf2199cf1ff

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.7.4-py3-none-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.4-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 bb1509b09b3c01966bb2023d40c95d845e6027b080b26ff3285bc812c0056d6e
MD5 014da76a61b805704cf38e2875855063
BLAKE2b-256 62c767ce49044fb9bcec590c44a9d8ee8c403fba4008bdda7273443a66967fad

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.7.4-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.4-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 e9091c514c512a9f1102c5482e6f7aa7313b588245586295d141e2aff5f4c7af
MD5 b6aa917ae687f5e9944b4fde0605edfa
BLAKE2b-256 2c19c485a23d1a1b0026111143a36d52d58804c8e871308832499330c380eb2d

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.7.4-py3-none-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.4-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 fedeabb85687b462e514ff42424fdd2926259e2424e9c04f45c7311758a2120a
MD5 c279ff766ad3b1b7c2f1ce6c9cfcc967
BLAKE2b-256 103d675561cc6b2ced3c978484691e3de5b59314cbb68998fafd6e2b7db09c2e

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