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

Uploaded Python 3 Windows ARM64

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

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

Uploaded Python 3 musllinux: musl 1.1+ i686

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

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

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

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-1.8.8-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.8-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.8-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.8-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.8-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.8-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.8-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.8-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 824908862b31cbbaa1de48f51f4a90ee4a51c842ccc9dc810b0081c81685a9e3
MD5 e1ce1eac5b769523c7403eb55ba8e7f6
BLAKE2b-256 212bd8591c3fcac9b59d5de38592b9bd9a3a38c11a244c44afc5f019ae028641

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.8-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 84884d3de0aef359c06d41e5eadb32a451fc6145d7b584ed41f3d3cc876d248c
MD5 78514ca5cde9622fd01b387e4a78479f
BLAKE2b-256 5884342c860377fd875e2a1f8aa064fe14b9c76c1940fdc6f9eba1f0a2e93300

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.8-py3-none-win32.whl
Algorithm Hash digest
SHA256 f6c9e993a7e606efb2283ed30092d6027292e886d729cce0b12cc244ccf89b36
MD5 3607f8fe12a3e1200be160376150874f
BLAKE2b-256 d2d495f3ad0f7d797bccad2ec095ccbf4b6719854db87b8ba7488c31a435e4fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.8-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2af630e19b40a7c967a07bd5255892654415672295b4278541650bbc6359eb76
MD5 b8efd0ed01b2e75c3afb4d4f00b0b21e
BLAKE2b-256 4c1a8e41c4330c0fced059c275458143ed2fbc4ed44e2c37e3997dae11aeeb7d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.8-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 66eb95b86046b1da96849361914538213abca7ce9cda9cb3cdc0b4fc2cbe54a6
MD5 1af4552da0a24bc962fcb5f82953cc98
BLAKE2b-256 dcf9bc599b4cdb740847beb5caa8fc1b5563fae1d29e85e2ce7e148447efb0e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.8-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 f388dad2bd22cc95868ff31e8992750912652da06f6bda405622073d70a0b3cf
MD5 d0816cbb27e7bada05d9ca16b98f7d99
BLAKE2b-256 4cac793d2a65c8ce34bc7656c4e846b869ff8c88955567050f7b0a1ed9f22675

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.8-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 99eade51770b79c08aebd99f137a44c7fa5f59cc2c46fe2ede356ed087fcdede
MD5 7b648a612745f00cc64ecefdf7e8f23d
BLAKE2b-256 e5306c023a58468e617920a0dbb4cdbc074096684b08f7fba6c0e3e4b9095b56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 d257e6069c63fabfe553ecde98c3b0abbba87310134d0a9dbaa2aa20f03acfd8
MD5 bd1141bfc1e6ecd0c302583341fd9455
BLAKE2b-256 c490a1dbbb33870f810745418e81368f455b715e6b45a2cd563307cf3db8e0e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dc0f0b7896c1ffce0674c7b3bb3f2888c1f8b34905ab835bcdc40a9d566690f4
MD5 71f062b28febf72f208e0b5e8ea00902
BLAKE2b-256 06ffb1939fa93918dfd7eea56d162147aa1460f57c1f520539a973cb14a02b9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.8-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 d29adc2e575e67845d0a299f108a1426172d85fa34e29afa12f6cafbca3513ed
MD5 80e32dc277bacbe608d043b556df4349
BLAKE2b-256 861bd2951752ed7d77966041dbbf69c4bdd18a181e1399328c88eafaa67c4ad8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.8-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 cfab29d3f8c2505ecd3e174179625d3bfd23c572c97af1dbc6fcfb1f176a62cb
MD5 920f15040009d948d906c24ede3a8fb2
BLAKE2b-256 c8155f59d76e59a0590f021bc6f3c787d4f5d06c06d18c16185687408e95fd5a

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.8.8-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.8-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 4467c0515f562e944ae604b24034c918c0dd1d207cf093850baf7433996221aa
MD5 71a78318e69162f9bb38f93687b9e9a0
BLAKE2b-256 41a9266e19adeb17e28dbbe53573b14d98d326d18a0aeef6cc5a23419196d833

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.8-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 7a21eb12a5f159c6de2ac6862d63425cbf80440f70e073b6f14508208e04035c
MD5 304283cb760634a9346a8e49f8a1785c
BLAKE2b-256 b8acaf2a57b550c4b1ac56878d845523354da4293b66119425c14c22724686cd

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