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

Uploaded Python 3 Windows ARM64

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

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

Uploaded Python 3 musllinux: musl 1.1+ i686

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

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

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

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-1.8.9-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.9-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.9-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.9-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.9-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.9-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.9-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.9-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 590a7d52e7da14579b0cc5bd013173208beb8b4ab0a5ab073add51bbc99bf4bb
MD5 23ff8464b07f4c20f22d383b2f1ccd1b
BLAKE2b-256 d28d4df374036cf26e90da20bb94128a7b707b3247e89f93ec5450ef9bf4cbfa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.9-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 163b66ec6855beeb3910d936549de9b981095723af1436d8b3b92b88114d6f75
MD5 8b4e56e8e49fd92542152d9cf79f7ec8
BLAKE2b-256 68c18f61f23757e7ddc29aa49658969b0a93407ea5cc9e4107322042b27b02e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.9-py3-none-win32.whl
Algorithm Hash digest
SHA256 80082dfa0c9236f14af2f084dcdf6bb8220b49e34cf4aa1f1c30e8f233b96684
MD5 b37c22705d8212d29db13616c3008569
BLAKE2b-256 7a6b2754e29a1bd190882528476d86cabfc080c1fbac308092e78598845d44ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.9-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5ea361277cfb4963badc44b51c4d88a284a9097ba1b8b8cdd636985bca77ebd6
MD5 5bcf6d11c71364fd3a3f1360353f83ab
BLAKE2b-256 a79a69d9df9213ac513f5706473e886856524b6aee97207305ccfe427cf923f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.9-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 e4f22e50ff65324fd4b61fc282ab49b052bf5e3208449e208f8cb84a56702e2c
MD5 02a6b7dd066be45758fbfafe80909958
BLAKE2b-256 095e5146ea3124408ca467175ea3e4e06967ba6db55f11f44435729a504a9d56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.9-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 7ba3d447a7baf0a9874ca907c86ec64c32641889fe5816ca35d20119c9947356
MD5 18a6de4302d16343b6847fe55fc4b439
BLAKE2b-256 1f208ff8fa31e58642fa4a7170f6918506e194365146d92e5b8e681733bb10f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.9-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 0014b35ea6dac7bbfbd6b797dd98b11366fd2adecfeacf39dc6300021a935d89
MD5 73bb086bbe476826eaadc1014c33f762
BLAKE2b-256 eed0013e1696caa279bf602937e3cfe38856071cc5108a0ee36023f4ad2c967f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 fe7011ff4b478440d8ff3c6b8f1de0aa7fa3996c26d6b25ee54b8c3c49a13ff5
MD5 ed632a411368a0ec9ce023f0f39da302
BLAKE2b-256 2f5b400867310e4ecf9d78f558af666a58d764664c36230c1a4dae0719997703

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.9-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ee547987b189db5090f03059908e671b0bcb14405a5562aea2a6c0d1074cdad7
MD5 17443a520fa2d56923e7d6657e7ddf4a
BLAKE2b-256 c27c0e1e7891741902afb64860b3753f9bbffd0ac59101ed809197fce45b8f73

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.9-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 79617a06037b16b050557b8e28ebc0faa79312845a262044ab0c91b5b0e96a0c
MD5 d74f676efbcbe76d8b233476f714c1f7
BLAKE2b-256 33b337c81f4933b97027d0461023abf23778942a56887fc8dbee086ee95caa15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.9-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 3feb36a68a9c3427f42ae13075add3d1838990948a7d3de4089b87753e1090bc
MD5 9904541d328f89c49d770c0d63bb5f19
BLAKE2b-256 f5294bd2a3262ab7938b1af4a5a7f8d5f93f307e7789a97705098869542a3213

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.8.9-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.9-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5cdb81ede35a861cde1870c36e65665467555f861c1ef66358fcd8661980838a
MD5 05490ae572dcae5831c2f6793c71fd11
BLAKE2b-256 e8a050a99c3ca304914841b27a3fdeac5afec0188c6e2df5400f4b08422f4327

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.9-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 967abf18d9a48e9958dde79de6c9ecc45dc976b54a963a676765ec62f87a5bc6
MD5 7918d95816d256dfa6b7c5621c6863d4
BLAKE2b-256 4fd2c6b950f293d213944adeb362df9da21a2d32260baf11abf9d3bf1a7fe7e3

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