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 协议不支持文件秒传。

如果项目对你有帮助,请考虑捐赠支持项目持续维护。

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.0.0/aliyundrive-webdav_2.0.0-1_aarch64_generic.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v2.0.0/luci-app-aliyundrive-webdav_2.0.0_all.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v2.0.0/luci-i18n-aliyundrive-webdav-zh-cn_2.0.0-1_all.ipk
opkg install aliyundrive-webdav_2.0.0-1_aarch64_generic.ipk
opkg install luci-app-aliyundrive-webdav_2.0.0_all.ipk
opkg install luci-i18n-aliyundrive-webdav-zh-cn_2.0.0-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 请求时总是会以上一个请求 URL 作为 Referer, 使用 rclone 时请使用 Web 版 refresh token 或者启动 aliyundrive-webdav 时增加 --no-redirect 参数.

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

举个例子:

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

命令行用法

$ 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
  -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.0.0

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

Uploaded Python 3 Windows ARM64

aliyundrive_webdav-2.0.0-py3-none-win_amd64.whl (4.2 MB view details)

Uploaded Python 3 Windows x86-64

aliyundrive_webdav-2.0.0-py3-none-win32.whl (3.9 MB view details)

Uploaded Python 3 Windows x86

aliyundrive_webdav-2.0.0-py3-none-musllinux_1_1_x86_64.whl (4.1 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

aliyundrive_webdav-2.0.0-py3-none-musllinux_1_1_i686.whl (4.0 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ i686

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

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

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

Uploaded Python 3 musllinux: musl 1.1+ ARM64

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

Uploaded Python 3 manylinux: glibc 2.17+ ARMv7l

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

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

aliyundrive_webdav-2.0.0-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (4.1 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ x86-64

aliyundrive_webdav-2.0.0-py3-none-manylinux_2_5_i686.manylinux1_i686.whl (4.0 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ i686

aliyundrive_webdav-2.0.0-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (7.6 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.0.0-py3-none-macosx_10_7_x86_64.whl (3.9 MB view details)

Uploaded Python 3 macOS 10.7+ x86-64

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.0.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 64b3f9ec8aba6906814b1e7c8757d852e81bc7ac0f20a5b4b6d1f8f27cdcc7cb
MD5 ea6a52c47e6d82e7d4586e94bbd08d33
BLAKE2b-256 b3c8e49312aeb7ae3e46a271e13268ac7ea24879f57e30ed8588c4de27c02a27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.0.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 92cb28b311d5de5dbfcfbbd6c6eb457b205f9014c5f4bb703d0dceeae3762273
MD5 a221a0cf0896d3e7185e5ae52362c7ec
BLAKE2b-256 be38fcddde68dbd4e6fd568351e7923eb9353020e1a2ef21294a493c9a903b49

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.0.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 0e01b92596b71acf8429128a7fd8b04ec36cb20389766782feee844355b800a0
MD5 5dc6ed68cb0915d345791108df4f56a8
BLAKE2b-256 1f08d9c352df49c729f53f520b6606f649d0b5d108c6189f62934304a787fb3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.0.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 7385da9fbefded30988b93531ff5231422860d5e83e3f399be6566886f02e8e8
MD5 bd8232028b9db6bcbf7f59ed1918097a
BLAKE2b-256 57fe30b41686ac113f98d7bdc1073ed160a324eeb2d32a66dc81b57c71e28924

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.0.0-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 a9edc913b61f43a5c1d5f0bf29af07e1af9385ca67b7f6882b23e37ca095dad7
MD5 b3a05aa4c40d830fc10faf32124885fc
BLAKE2b-256 3dc712694173a070985e34bbebf5509ad64c86ab6f412c1bd9a104dc493113b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.0.0-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 6ba3021e4535e3146984f1c49214c147c7fa4a30455bbe23e5b1ec97eee9937c
MD5 a5057bb3270752b0c8185899e635c426
BLAKE2b-256 726c58bb86981f800f0e7ef9555402920f938a0577053a2d5da5a07234b0d3d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.0.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 fce5e15d23ebb888679c73fd604f737f66c2422cf4013eca0b37fbdbd8e0b527
MD5 a393b2f2d8826157d7380998260a7011
BLAKE2b-256 9346d323027276c43427e07f4c170c48c4cb314757dd0089569daacf3d0ce5ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.0.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 a9b589448f84f163327a3457062cd239c734f3c1993d719eb12e1359e0d5ad30
MD5 529dea083feaab985880d06802174d59
BLAKE2b-256 6249dfc04d204e124155063dffdcedd51c0117c33b857d7eef86ee2fdbb74424

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.0.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 89b0b172aa485e8f367aca1a76105549a6f2ff87f0246b1ffcd1f0ec4350c1fe
MD5 809bfc8eed7c4c918ac5181f3733a314
BLAKE2b-256 acf06bee7717597a2e4a90d02d38289ae2f9d0661ff4589e813c0e42e9867d06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.0.0-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 c6ea34f1eba57040eafbd282b95cda160f67694c52c2be547bed1170dc12b3bb
MD5 d5bd1f2661354b0681fab0a63aa882fa
BLAKE2b-256 8f8bbc3ef4158bd6ac8085072aeca917484d561a3000b2e1ce3f94c6637c3c80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.0.0-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 e07fec4e26b89685a75d78c6dccbf2af339985e1f21c2ab9d4a70dc8734e67c3
MD5 67030270b5d99931704bf82342ec2461
BLAKE2b-256 d06401b053ed6523b2b62c14875490cae5bf1731691197018d1e99d2f5b6a952

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-2.0.0-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.0.0-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 544784db14763e0bac0ecbbb1dc705d8fd53db66a035153ee7dc09f3a2c555d0
MD5 fd5e84433749d34d5c9b7cf3440e6eea
BLAKE2b-256 205d2987a2e61fc15119be2a88cf7442ea315c4d6851c226fb420aab291be482

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.0.0-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 0ff610eff1a1372ebae2dfa278a75713f6893eb8fd1b990971a54c31f8aa419f
MD5 81fbca9fa4941406ed4141095ac33e0e
BLAKE2b-256 07c4a1213ac6b1cf5e9ba72b41498c899c0e28ec18952b59eeef592ef68b13d1

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