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.8.7/aliyundrive-webdav_1.8.7-1_aarch64_generic.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v1.8.7/luci-app-aliyundrive-webdav_1.8.7_all.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v1.8.7/luci-i18n-aliyundrive-webdav-zh-cn_1.8.7-1_all.ipk
opkg install aliyundrive-webdav_1.8.7-1_aarch64_generic.ipk
opkg install luci-app-aliyundrive-webdav_1.8.7_all.ipk
opkg install luci-i18n-aliyundrive-webdav-zh-cn_1.8.7-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/ 即可看到你网盘的自动生成索引网页文件。

参考文档

rclone

为了避免重复上传文件,使用 rclone 时推荐使用 Nextcloud WebDAV 模式,可以支持 sha1 checksums. 另外需要配合 --no-update-modtime 参数,否则 rclone 为了更新文件修改时间还是会强制重新上传。

举个例子:

rclone --no-update-modtime copy abc.pdf aliyundrive-nc://docs/

命令行用法

$ aliyundrive-webdav --help
aliyundrive-webdav 1.8.7
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]
        --skip-upload-same-size                      Skip uploading same size file
        --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=]
        --upload-buffer-size <UPLOAD_BUFFER_SIZE>    Upload buffer size in bytes, defaults to 16MB [default: 16777216]
    -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

Note

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

Note

注意:启用 --skip-upload-same-size 选项虽然能加速上传但可能会导致修改过的同样大小的文件不会被上传

获取 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.8.7-py3-none-win_arm64.whl (3.3 MB view details)

Uploaded Python 3 Windows ARM64

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

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

Uploaded Python 3 musllinux: musl 1.1+ i686

aliyundrive_webdav-1.8.7-py3-none-musllinux_1_1_armv7l.whl (3.7 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

aliyundrive_webdav-1.8.7-py3-none-musllinux_1_1_aarch64.whl (3.7 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-1.8.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.7 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARMv7l

aliyundrive_webdav-1.8.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.7 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

aliyundrive_webdav-1.8.7-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.8.7-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.8.7-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (7.3 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.8.7-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.8.7-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.7-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 36e5803a3658e9788be1b686838117f6073e3441713f20e3b03474b130fede3c
MD5 cd86cd060360863a6ffc385a23749edd
BLAKE2b-256 767a9a95e1fed2d405e3d063a62878dfed7a0d93ecb1a4ef32c928b0a85569a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.7-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 5a2d81e3138a7113c26618386a15c782c79eb9222a27c869952ccfbe21e0aff2
MD5 bca96ef8671ce8b28ff0250e27fe234d
BLAKE2b-256 bf0667e106277ea3bbb8c039efc133fa3f5b802be9d44613f8fed4fa71d78a87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.7-py3-none-win32.whl
Algorithm Hash digest
SHA256 424896458138b1821297c312bf96a5d79b32afc92f4ef27bc2b9974f7bd62dc5
MD5 18307407ff9cfb2689fcbb5615ed8a3d
BLAKE2b-256 fee874975a0ee2e3375ba7edaebbdf0b6a6c08cf5efab5b9e487b0dceed87c5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.7-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 846c8a5d002e57aba496d7e5a02b87d0637171e9a9fffa6f76f357fd5f5d253c
MD5 d28124d4278f27c477413a7006eb3968
BLAKE2b-256 8b71934c21bec0f3034ed8ba9c7805398bcaeb88b82f97f5dead43d5269f2dde

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.7-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 6baa8770ca51e9a5c123c001650b2810d1275e6c2f92dc5c336a128586e39dff
MD5 3188ec7ba68193bab5cd3fb727817bfc
BLAKE2b-256 20e9fde24b5363df3d541eab1e05cf4a7984301b3bf21dff122319458f660eef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.7-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 106bdd6131a155b9ea025bb018d5e173f8d608083ce650a881dd4e9609c8757c
MD5 95e89a1b46f84be9251c6e88e08fd181
BLAKE2b-256 9e312e117b5ef898d8e4d4b1e798d5a3e141706441f9ad26275df253eb0cbf3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.7-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d296248a276019533571a4e83faf67cd659725b79bfb015483e0579af6dff056
MD5 44624ddc9fe7468c6eb7a4a18648b2e2
BLAKE2b-256 fc73f22d35658750dceb87bc39a11bf0fe01c07fa3746b09d870d9d3e97ea3e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 7d085bdf19de03a21d412bfcc8ec6b7d7637b59abb8f998faedd98a59723a796
MD5 c94cef72f80a9533ecaf0b51dc2683c6
BLAKE2b-256 4c17abd1c2bb3d2f4fc00da1d7aa2addba17224d936839779320fe4076392ac1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2507172b6c3c0fc0e466789129930a4be82c0decacf6fb7eae3377753ac69961
MD5 b6fb7818fab955fdb398dc4e71538bb7
BLAKE2b-256 33b8ee9ad22a9fea274ce3d11a142ba200f03feae097a88dcb5cb44274263826

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.7-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 bddd5fd1791d99546c2f28b8bbd7ae95c9555ca10ba6bd628bef1e363eb8f9f5
MD5 51803175eaedf55cd4c525cca15f8127
BLAKE2b-256 e6c1b4756f0359e75f266104820a0b12fff4208202003542e1c336cf1b5ca56e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.7-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 64105591cebc86a360d86d910d58aaf583ed8171f525d9c8b5bbcb3381cf2d8f
MD5 5379be0e49b218ce8b8deee3e8aee794
BLAKE2b-256 d070ee31ec37d52a82dd3f974e8c5535578277466e5e654c64c3bcc2b6d6fbe3

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.8.7-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.8.7-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 6942a7a44bb86126caeb1dbfe32f1791a2ad4e7a831d697578608f156422d128
MD5 56831f8675d8d83da72ea011292c3251
BLAKE2b-256 880154e45ca9eb14c0e44a27eb49ff1dfec46fd32909896d9885dd7f0fb7e4a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.7-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 f5ee8eb3ec02949d2459ba8b1a35935263e8732c6efe3505255c09521a484a29
MD5 3d4a40a25ab63c51a50d3dfdd89c65fa
BLAKE2b-256 35eafaa9fdfb82a1e0c0b31824900c3be881873eac3cd35d0c781c0ce5462272

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