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.3/aliyundrive-webdav_1.7.3-1_aarch64_generic.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v1.7.3/luci-app-aliyundrive-webdav_1.7.3_all.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v1.7.3/luci-i18n-aliyundrive-webdav-zh-cn_1.7.3-1_all.ipk
opkg install aliyundrive-webdav_1.7.3-1_aarch64_generic.ipk
opkg install luci-app-aliyundrive-webdav_1.7.3_all.ipk
opkg install luci-i18n-aliyundrive-webdav-zh-cn_1.7.3-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.3
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.3-py3-none-win_arm64.whl (3.2 MB view details)

Uploaded Python 3 Windows ARM64

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

aliyundrive_webdav-1.7.3-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.3-py3-none-musllinux_1_1_i686.whl (3.9 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ i686

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

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

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

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-1.7.3-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.3-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.3-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.3-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.3-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.3-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.3-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.3-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 da3779f085a6941ef70d44519c01afa1ddd8df521c12c454f6d34df5bd2ba3c8
MD5 8de3f83c9b8acc2b56c23466f7b2511c
BLAKE2b-256 4f5d2fad6f810112d20b2d346698061675099c123d7c33cb8bbf5f5a2e6e3860

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 a768139bb2ed02b2205fe421b322471fdb3615b11746da5144420188a06a64cc
MD5 eece80fba37ed36a4d5d38a2292194fc
BLAKE2b-256 ad5278e1ab068df998183a49812ba51a9a516941e20967345bff7e4348d4b465

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.3-py3-none-win32.whl
Algorithm Hash digest
SHA256 485c465eb1678559bcdd7ac17ceadcebad9e03f014c0c0fa878025379c727182
MD5 3d592f10c27e47458448553f854f666f
BLAKE2b-256 a08a8ba68f52991c11b2cfed82daf9ac2e7138bf39af389e83c34761e31e4abb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.3-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 af8a93b78964a50573f273ebb843b24ee0bfe0d46abcb8fb727e89da35e406da
MD5 69f7abc15bced6d91ed7c8903523d53c
BLAKE2b-256 1e061b7f6d9d40dc1236123900f4d816746a932eee8cfe3a64b4ac73bdf78c21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.3-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 337d8f4face30a4f40bc2cbac1f26fe929354634221031b8ec3d59504878c33b
MD5 754b8423cf16efc0a29ec5a76eb07b67
BLAKE2b-256 d6622821e90a816d6bf365d43421c05b810f8d91e5274527e2abca0f3f47a187

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.3-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 7dd69b48f40c2785cbc1310a30703f33570ccb86975ead598d470dc7e4f05eb6
MD5 ba2de980561160b2442add161bb82495
BLAKE2b-256 3975d7e8cff19aafb9b00d51554f65d9745126d0310ed7fa958e7f0ea5812482

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.3-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 f4597aac31154cc856b9d5ba5dac4c7ee7bfce3cd94433d91d3aef4822528002
MD5 f63740c826191d3dc3772cd74907d518
BLAKE2b-256 03318cd0e26e0a707edbf6b4de2285d88d091bf68fd6d87b39eea0140468182a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 c3115d516398b913ca688d269f8ebd1aee42d8f052b2cce941ce871875c35f3b
MD5 9a3e8469419dd8a8e8e86f0a6a164d74
BLAKE2b-256 26f9ca3b94fb493068eaf11f73093c97b6ae0343b78f8f6e93b161142811cb40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2e3e11a607c15b51bee959140a2ee842acef9cdc4f2fa7f538fd6c8c4bee4833
MD5 02d466dd5f302dab866b8dc72600ce4f
BLAKE2b-256 649b52e566acb44dc9f39093f5bb14c95feb9602e1c9125310720c9a2e6c2b4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.3-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 33a94c2670941bce7ccbe7cf7d0b14a613a516f8b10c03411e5b9fc1161da567
MD5 f8ffa3669a91729da701b1ba643b740e
BLAKE2b-256 b7af6c7038d079872902d6127a6c0f625bf995d2f9bbd7547f5ba7f73e27b005

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.3-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 cbe874f119cde9a56268f059b7f7d30f39f404ee918257ffaa1821a6283689af
MD5 610798112b374a0767e9324ab1622367
BLAKE2b-256 83d275176be5b1968c5d7e3021136af1ec457fe94513e9cd3c2cb48290c2da32

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.7.3-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.3-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5c9d568736b87aa0e3407e0f822bb814ed78ab84d6f938cda4358bb75c0c8b9f
MD5 4128ad076a8a68b47e526d3a9bfc95d6
BLAKE2b-256 f5f4921f7d7e1394f783ea7a76fde5bf20eaaed3d4eb848873d71a2dbbcb3a07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.7.3-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 40eb1a0f8e5c51019d943bbe96a0e6cae00395648b9b2f6e6f085e0294ecd33d
MD5 8d63e9c9a644496d649c6db25862c0de
BLAKE2b-256 8f44043a3fcfe75b679d17f5fe00ba1fcc954c9ecffeec3b76d268082fbd39c4

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