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

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

Uploaded Python 3 Windows ARM64

aliyundrive_webdav-2.2.0-py3-none-win_amd64.whl (4.3 MB view details)

Uploaded Python 3 Windows x86-64

aliyundrive_webdav-2.2.0-py3-none-win32.whl (4.0 MB view details)

Uploaded Python 3 Windows x86

aliyundrive_webdav-2.2.0-py3-none-musllinux_1_1_x86_64.whl (4.2 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

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

Uploaded Python 3 musllinux: musl 1.1+ i686

aliyundrive_webdav-2.2.0-py3-none-musllinux_1_1_armv7l.whl (3.8 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

aliyundrive_webdav-2.2.0-py3-none-musllinux_1_1_aarch64.whl (3.8 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-2.2.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.8 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARMv7l

aliyundrive_webdav-2.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.8 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

aliyundrive_webdav-2.2.0-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (4.2 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ x86-64

aliyundrive_webdav-2.2.0-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.0-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (7.8 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.0-py3-none-macosx_10_7_x86_64.whl (4.0 MB view details)

Uploaded Python 3 macOS 10.7+ x86-64

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 39fae8f22e15c876fb01ec79d59aff0843feef1c4d38710ea7504fcbfd266536
MD5 0410ef6b6a99c31c624963e16a053de9
BLAKE2b-256 93f56350232825061432cc64aaf1fefcd584be52be59ced504a2ab86b87e7019

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 90ceeb714569563e1b1fb878b78eee4e950da28d903d06ceb7cbedd630512787
MD5 19ae5e8ec311bf123a81e04b189ecd2a
BLAKE2b-256 460fdb381f65f118f991ae47ff1e6690bf22a810566add3f4ba299812f9d65a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 6d9ead7adfe66bb0bbb673ca40a9270ada8134a391c1d1beecc191d98edc0653
MD5 3f2c7b71b239a8c2dba5860dca482e4b
BLAKE2b-256 342c77238608d14fb0033f38abcc861297dd0ef4790626461551b1a648396621

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 898677799b9f321ecd701dd83c2fc18ba704a912cd22f8c6cde3728e1550f660
MD5 c7ec88cd11fca2d8fc5a3cd2ac88a75c
BLAKE2b-256 ebaf7f2a49d5ccb0548fbf677290937d72e921864aa0d646a1f047ae0929e66c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.0-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 75a1f64ab291e62f434c7b50789053de48cd3d553dfbe3d842a574ae0032e256
MD5 0faf34b832ced5f9017ac66ef1b99cb8
BLAKE2b-256 6fa6eb2e7f0f0af17093e127fc0588ec6e45776122fda1d3bc1875585dd6efab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.0-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 7a18c3a4ee067f026b5a595101bda231484cefffa82a0436be0c3e3466a9ce0b
MD5 1c553e796125f2077553316295b66895
BLAKE2b-256 a3656fcffeb49fb3a2600b9b37d4501bf9c74d190eefcc97421219b8d20417ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 c114679dcd310de0b4a8a19e7d3d3404c8ab24c3920e86dbe1678db21cac2cab
MD5 0146bb15c2c955a50b48b5ff311506d7
BLAKE2b-256 a789f7fc429bf3799d40f6d2f3ff5e4c667e9f8a8aaae3c459ca44f2c058ba02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 c9a20aac09803b8b236357c30328c925d3549dd3902ee633642bacfbb2bb6ddd
MD5 dfb79edf85989b54981261d4d2931251
BLAKE2b-256 52f06c3e422c567be0ebc62ef0ecbf8453120e75fac2a8bfe3e19a6519f72365

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 287beaa1190a80deb0f44e05d4a7503d853892ae34283e3cf80221023f308584
MD5 71da9320061a73bb364b574ee963984a
BLAKE2b-256 e83f1ade1ba95866da7dcf0d28103606519b98d767735940ae2a3182258366e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.0-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 ed73f215fe14918faa8fef62f420794361c1c6c6bce2ac7a6fd084de6e7629b1
MD5 8feefd6563cd9d191ff3f150286ecd57
BLAKE2b-256 def973448c7a85aee582ffcfef9fd14d62f6c58771d6fb1bcc9b10fe7467cfb7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.0-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 e4606d071be5951450887c9690e34a210070c6594c6e4033672a8c3e85c84b8f
MD5 54fbdd6546f8896e6fcba6d1706971a3
BLAKE2b-256 43089fca6075317cdc228f9c74351e726c8e339b36d07c5cc511cfa077ed3f68

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-2.2.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.2.0-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 8f8ab3cfc5dab2c0e4b5d0a78a9a6869570e5174d876b363be0ae546d357da15
MD5 74113cc8f595051cfedaff22688558b2
BLAKE2b-256 410ec19bfd9f4cc57dd670e5556d99e88bab4e3f158ccc3bf2181054d19a7aa5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.2.0-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 e4421226e5045878163f356f98f45379b0a8158c5b20a41ef6a0e4ae9a3e381d
MD5 a984495089048a930daeba65267d74c4
BLAKE2b-256 19a2b45e2285f5273096bbdcfc6626e6cead38a0bf592dc465c9236f25bc7fae

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