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

Uploaded Python 3 Windows ARM64

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

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

Uploaded Python 3 musllinux: musl 1.1+ i686

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

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

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

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-1.8.6-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.8.6-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.6-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.6-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.6-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.6-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.6-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.6-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 e3aeb21281975fd00f01b4984f7d47fb0fb2cae3d8774a51283b4264dfeaf2bf
MD5 801bb87e9b4ec15bbc53610705ef6c8b
BLAKE2b-256 8f0a1cd62ab7a0fd0642ea93581680a84e2e95774a588437ea9c03fd4873c7ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.6-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 911d5f21c0a42a5ab99264764a95467be37597d52bbf35f03911fae4a82e2c48
MD5 c763c52c547483fb0f82595e09287a39
BLAKE2b-256 0901fe5e4f3a19e9226e69249f1f40cbb0d1dc64b3f208b49cd52a44c4a0f66c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.6-py3-none-win32.whl
Algorithm Hash digest
SHA256 07ca5462e789ddcf09271d4be05bcb598eff47682bf3ea2ea5e1ba53f46af640
MD5 ba2d47560c641c8fd93fe6e7c1791473
BLAKE2b-256 fe27113850256b9e8602986964960716db8bb377e9426d21c93ba01ee37df73f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.6-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 6997788cfe3e0d444c9b2b83625611928d2b2c219098701d44b2100c290fa8e0
MD5 b4865c9c019225099e42b5b3cf7a2092
BLAKE2b-256 9d6d814907ca83e50f7c9741b613bdebc9801d76b761989dbd095193573208b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.6-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 cbb2bd8c675e022fa6b51d5fc15ef7dfccab7ae952723c56c8aba9fc4438e1ef
MD5 e210a857877e9262b46e08f2e37811b1
BLAKE2b-256 da27cb01e9b36663fbeee83b41579fb550ed38a486e17b38f39bd0cf57474e85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.6-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 95b9e5d3156c5b3f8ec6611d5fd84e8b966f95f192b6cc685312367cb58c76aa
MD5 80193c369b6758f6fb98914b5041c8b4
BLAKE2b-256 151bdf497279aac0ba2e9fa33d8a679a02aae4b65c0c8b3ef58c5fe50c5b348c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.6-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 19fb65e67b134f41c69fa7246da8bee306f07e1012de3b58352eaf737aa34c83
MD5 cd37f9be0e8fe405c854577bdb9f3d22
BLAKE2b-256 b682b0b82da111277db856068247af685e4e9d4217cb2710be21f55334b17521

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 787dcb5b301e30d81e0ae210288372220905c4ddb2ad9f7abcf9bdf681b9d78d
MD5 a87fd05de495a9e60ebbcbe669f78ed8
BLAKE2b-256 a22132e0cb325cfde07714b9768d1357ade9d8437036f1d2c872177190baefb9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9d045b6d28afbf31097bbaa75c5da64397492af266e5af74616624c4752a164c
MD5 e757ff375889ce040719228608a65500
BLAKE2b-256 61603eaae0f37cc788f175ac86932dad86bbce80c562a9b5455f6cd5c4c918f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.6-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 cb5c14c19f17f5505e962f1b46313b105630b75bcb04615e41e32b169490c508
MD5 4f39c7221cbac7cc3f364b60af4f5ae5
BLAKE2b-256 d2330b4a2ea710347abd6801e972ca8d9c8a3abe77fd5e05b57b3eedfb51bb99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.6-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 91b891c894a13eb040b0460b61dbca3cf0ea396177b786926535f490874b33af
MD5 a08cfe86d25acf47e3f24817c4ff7553
BLAKE2b-256 82552ba812b710352ed4590e49a9c7d3c7c8174930db66287d1ed567b43e59da

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.8.6-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.6-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a7f95f8cadcffdc91420a20d53e2ea19c9b502731bc1855dd325e97f993c179f
MD5 c431239dd6d8c03cb8525d4fd9ba75cf
BLAKE2b-256 f0412a7377dce29cb8ef43dd34b01a2c2624ad4b3a3494812d42d2eacfccc290

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.6-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 09c22d682ecaded87502e17eb8f22d7d27884c6908a54052be00dce30bdf4eae
MD5 99a940fe1c419047374d37cfe728a149
BLAKE2b-256 7310558755a6df041a74f1aad2906af7a7254be1d5354c26020160cfee10e836

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