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 等实现在电视上直接观看云盘视频内容, 支持客户端 App 直接从阿里云盘获取文件播放而不经过运行本应用的服务器中转, 支持上传文件,但受限于 WebDAV 协议不支持文件秒传。

请注意:V2 版本基于阿里云盘开放平台接口实现,不再支持阿里云盘 Web 和 App 版本获取的 refresh token。 由于本项目作者不再使用梅林固件,V2 版本不再免费支持 Koolshare 梅林固件系统,如有需要请考虑付费支持

如果项目对你有帮助,请考虑捐赠支持项目持续维护。 也可以考虑加入aliyundrive-webdav 知识星球获取咨询和技术支持服务。

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/v2.2.2/aliyundrive-webdav_2.2.2-1_aarch64_generic.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v2.2.2/luci-app-aliyundrive-webdav_2.2.2_all.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v2.2.2/luci-i18n-aliyundrive-webdav-zh-cn_2.2.2-1_all.ipk
opkg install aliyundrive-webdav_2.2.2-1_aarch64_generic.ipk
opkg install luci-app-aliyundrive-webdav_2.2.2_all.ipk
opkg install luci-i18n-aliyundrive-webdav-zh-cn_2.2.2-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 配置界面

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/

获取 refresh token

扫码获取 refresh token

命令行用法

$ aliyundrive-webdav --help
WebDAV server for AliyunDrive

Usage: aliyundrive-webdav [OPTIONS]
       aliyundrive-webdav <COMMAND>

Commands:
  qr    Scan QRCode
  help  Print this message or the help of the given subcommand(s)

Options:
      --host <HOST>                              Listen host [env: HOST=] [default: 0.0.0.0]
  -p, --port <PORT>                              Listen port [env: PORT=] [default: 8080]
      --client-id <CLIENT_ID>                    Aliyun drive client_id [env: CLIENT_ID=]
      --client-secret <CLIENT_SECRET>            Aliyun drive client_secret [env: CLIENT_SECRET=]
  -r, --refresh-token <REFRESH_TOKEN>            Aliyun drive refresh token [env: REFRESH_TOKEN=]
  -U, --auth-user <AUTH_USER>                    WebDAV authentication username [env: WEBDAV_AUTH_USER=]
  -W, --auth-password <AUTH_PASSWORD>            WebDAV authentication password [env: WEBDAV_AUTH_PASSWORD=]
  -I, --auto-index                               Automatically generate index.html
  -S, --read-buffer-size <READ_BUFFER_SIZE>      Read/download buffer size in bytes, defaults to 10MB [default: 10485760]
      --upload-buffer-size <UPLOAD_BUFFER_SIZE>  Upload buffer size in bytes, defaults to 16MB [default: 16777216]
      --cache-size <CACHE_SIZE>                  Directory entries cache size [default: 1000]
      --cache-ttl <CACHE_TTL>                    Directory entries cache expiration time in seconds [default: 600]
      --root <ROOT>                              Root directory path [default: /]
  -w, --workdir <WORKDIR>                        Working directory, refresh_token will be stored in there if specified
      --no-trash                                 Delete file permanently instead of trashing it
      --read-only                                Enable read only mode
      --tls-cert <TLS_CERT>                      TLS certificate file path [env: TLS_CERT=]
      --tls-key <TLS_KEY>                        TLS private key file path [env: TLS_KEY=]
      --strip-prefix <STRIP_PREFIX>              Prefix to be stripped off when handling request [env: WEBDAV_STRIP_PREFIX=]
      --debug                                    Enable debug log
      --no-self-upgrade                          Disable self auto upgrade
      --skip-upload-same-size                    Skip uploading same size file
      --prefer-http-download                     Prefer downloading using HTTP protocol
      --redirect                                 Enable 302 redirect when possible
  -h, --help                                     Print help
  -V, --version                                  Print version

Note

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

Note

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

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

This version

2.2.2

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-2.2.2-py3-none-win_arm64.whl (3.5 MB view details)

Uploaded Python 3 Windows ARM64

aliyundrive_webdav-2.2.2-py3-none-win_amd64.whl (4.4 MB view details)

Uploaded Python 3 Windows x86-64

aliyundrive_webdav-2.2.2-py3-none-win32.whl (4.1 MB view details)

Uploaded Python 3 Windows x86

aliyundrive_webdav-2.2.2-py3-none-musllinux_1_1_x86_64.whl (4.3 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

aliyundrive_webdav-2.2.2-py3-none-musllinux_1_1_i686.whl (4.2 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ i686

aliyundrive_webdav-2.2.2-py3-none-musllinux_1_1_armv7l.whl (3.9 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

aliyundrive_webdav-2.2.2-py3-none-musllinux_1_1_aarch64.whl (3.9 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-2.2.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.9 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARMv7l

aliyundrive_webdav-2.2.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.9 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

aliyundrive_webdav-2.2.2-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (4.3 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ x86-64

aliyundrive_webdav-2.2.2-py3-none-manylinux_2_5_i686.manylinux1_i686.whl (4.2 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ i686

aliyundrive_webdav-2.2.2-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (7.9 MB view details)

Uploaded Python 3 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64

aliyundrive_webdav-2.2.2-py3-none-macosx_10_7_x86_64.whl (4.1 MB view details)

Uploaded Python 3 macOS 10.7+ x86-64

File details

Details for the file aliyundrive_webdav-2.2.2-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.2-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 83c712433954a02140182d761a3770161a1d3950f072dc77bcb83612b60434c5
MD5 2d5714ef96910f5a20e3db385aa1ff03
BLAKE2b-256 fa7a9d8099a90fbe4901bfb43dea923b9f3801ca5350131d1cb1b3cb07fd8971

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 1abfb542cabd5e1e046a4fbe64f15adc059d73cf312c0a6053d50fa1e26ea8e3
MD5 3316621c4d93b5f4f4c2524f1261f605
BLAKE2b-256 02aa598bd6910274a9c2939e132396ad073697f6849c257f24c9a68b9cc717f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.2-py3-none-win32.whl
Algorithm Hash digest
SHA256 649ee019acb0a7417c1d61750459ba6b055bb0806df00266fcdf06f4ecc979f2
MD5 5eba7dacca680c9f5bd0c8d5f4d078b9
BLAKE2b-256 ad576fc3628794154f1f073875bea28e5a8663d84d67263887cbcece89e0dc8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.2-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5a370e43510192c7fa2604ad7790f7ec32b8d3fa4ea81b1492d1197fade12e15
MD5 16cb8dd3fba5217ba068798933ae34f9
BLAKE2b-256 3697164334ce93af16a5e3e700d52aa0f0f505c1587d447b9a2eace08aff0c64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.2-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 8b22c2365275d7e9dd9074f0b6497e27ea2f2694b258d21ef88a25230e40ba6a
MD5 6b81adc412d02772cdef9e5250695210
BLAKE2b-256 45ae880c791fd962f0cd9eb181460350b76d1872540155119e7032308dd0221a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.2-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 e5d40569198ddb4124b18cc0c7b5cdd2c8e2ab7026a87ba5ecbd9334a93aa03f
MD5 77488cd9f4b17f044c07afc6b18d7b3d
BLAKE2b-256 e04fe394a665e7edc823385681ead68801cb23d49969dcfc03498e7ac4acba00

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.2-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 6d4373e3505403808b0b37646dd361399a1f1a595cc1bcedfb1b80bf6383fe01
MD5 a0decf84bcf60403587d3b4a16659313
BLAKE2b-256 541f6f31b272075792a0d2a4061d21ddbf2ad8919d7e2c3020261ee1a553596e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 3a8ec16f277cb57d524e61b6122c9990ef33fc85957352f73119666169600c51
MD5 0e5b30857bd0eb93eecff6ec5ba08bc8
BLAKE2b-256 1c9a6d7fcdcdc684be1bb78173ae1f34a785ca578e5c9387fec938103740a817

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 917411c4637cf1ffcdc275825c1f1922b72ba7181e672d9c4fd16b52b00a6b0b
MD5 55ffd97d623783e7a25f92a43f082580
BLAKE2b-256 3a60faa2e79b7bab6ce2c9107da0a5472c5d835142d9592c5118fcf7b90a9ad1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.2-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 e143a06279bffde34c0bb1e365b198fed3228f837e77275e41b7044a185d463b
MD5 b7543988bf8292bf3a19f12e4e55d56a
BLAKE2b-256 2c117a7f4b6955c6d16313ffce69ca82fedad32d47df0a00cb2660d2f13c5f58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.2-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 856b650f2237eec1522271abe7f3446eee9ca52e9a05d2126d1f9974886f5ea7
MD5 64dfe1c7e88853de022935fc381ea33f
BLAKE2b-256 bb8c533a43d519884e15321e49b1a6d453deb13c31a6a18775ef84e9bb858bee

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-2.2.2-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.2-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a318ef25773b05424bee98bf7247dfb31c4b3725450b2a0bc0ab1a8e82e29508
MD5 61ec744c27ad809a2bb27f76cd088285
BLAKE2b-256 ad58f37b2156de59fd4a1ca5af24b2292d03dd70d9554f92b73a4ad11d7f7ced

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.2-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 2bf3bdbada8bc4e4c6ac7c9422dbd18f650fb9409209e0fa354ad56546e32d4e
MD5 29eeed3ac355690b4481e19d317e3eb5
BLAKE2b-256 68f4c4e39085f6a895527273d4382c0c6340402cf865e8a9f35f8068052cda4b

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