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

      --drive-type <DRIVE_TYPE>
          Aliyun drive type

          [env: DRIVE_TYPE=]

          Possible values:
          - resource: Resource drive
          - backup:   Backup drive
          - default:  Default drive

  -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 (see a summary with '-h')

  -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.3.3

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

Uploaded Python 3 Windows ARM64

aliyundrive_webdav-2.3.3-py3-none-win_amd64.whl (4.5 MB view details)

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

aliyundrive_webdav-2.3.3-py3-none-musllinux_1_1_x86_64.whl (4.4 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

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

Uploaded Python 3 musllinux: musl 1.1+ i686

aliyundrive_webdav-2.3.3-py3-none-musllinux_1_1_armv7l.whl (4.0 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

aliyundrive_webdav-2.3.3-py3-none-musllinux_1_1_aarch64.whl (4.0 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-2.3.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (4.0 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARMv7l

aliyundrive_webdav-2.3.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.0 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

aliyundrive_webdav-2.3.3-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (4.4 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ x86-64

aliyundrive_webdav-2.3.3-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.3.3-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (8.2 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.3.3-py3-none-macosx_10_7_x86_64.whl (4.3 MB view details)

Uploaded Python 3 macOS 10.7+ x86-64

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.3-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 3e2a68e5462be18d53c483d884c4c93befbc72ec3cb20b2e0c33b30fd1b9c106
MD5 db7476889f99e39748aa5937be463777
BLAKE2b-256 8455bc8536ae0926bd19de81848784f44ab8aee3606a1590122e7dd432067df4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 7bd0deb73764fe55c6de624c5a799867189280ff43b83c13933aa70bbf0cfad5
MD5 cf580d093f5b4399b04ebdaa8f0d2df3
BLAKE2b-256 d5688cbf251e8fe556786359cf816606178ae5e476acc567a8ba5051879cc5f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.3-py3-none-win32.whl
Algorithm Hash digest
SHA256 27b285dab8d1c2582c4dd26a417b229532a809718c27e8f3d99db8e38b65e095
MD5 4ccd817170510907b71f510b99cb8c99
BLAKE2b-256 b1de7e7b211e31bea7123ac5bf12847bc86e3ca550463e0f1008f01b1244fc13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.3-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ed13c4ab612c05915df0f3df1964909a223504c786a065c3b85ecfa1f62a3918
MD5 d044869a3d52139ed7c4fa2a809332fd
BLAKE2b-256 bceb3742b231c8ca5ca2ed166aa86b1bbb882f9626239697dce95247e0d5fc33

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.3-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 518ce1c8d431f7694a272552d514456f0b79bf1009118ca23020e60cb9540611
MD5 66b69fc1adbc9921cf3c11ce566db268
BLAKE2b-256 c90ff3fdcfea9bd59ec3fc5a48b36d3c703696c8f528bbb4ac07ffc5433e04e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.3-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 19eeabcf83c61c97a91fc9b58a4c2e05569a46bb29af69dbe41ef63b41bc8756
MD5 5c1524ca7389e7f27f0bc83b744f3196
BLAKE2b-256 cccc9b7cd9aa6bc87998c0f7809cb912bd44aa68fdda39fd43f999d9f28ac16a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.3-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 534f7a42e7ebe29ef34fc9b6eb25bfa5d345a093d8628f0e63c90106b969603a
MD5 5672231ef61646e08ed415ad8a65c032
BLAKE2b-256 15b623372ac0df41bf38714f632d245ad83f002f037f006dd65410b62d75fef4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 b85aeee3b244f43ef390d3c1a642268e8a8a8936d2389b00eef05e2c471a7f6c
MD5 d4dc6b5d583e48d84ec151f76e463dff
BLAKE2b-256 267c7963d24f6d0f20eb18c374e7383d7347aa1503ace2ac98b3b9d4c8fef570

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ccb2c350d451dee508a2d9b90ec2d1aecb63f75cdd3c336edcf933ed0d312745
MD5 6bee450cf3b4c4fbf58a80acd8adcd89
BLAKE2b-256 7ffd827ddc2f273f42ca91f6217859959d5f8b283484f63efce19d1af1cfbc6a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.3-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 4a64d423b012cbe046d8065baf4e54b7213f49261ea5840b1806ae65c94f148c
MD5 cf41c3111b3d7a6c36eebf91f6172848
BLAKE2b-256 55d105bb0e8c9554881a91d0e14381797c7b349a4aa9bffd99cf2cdf41c69aea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.3-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 ab829bf73e651fafbadcdfc1c9abcd8259245cff711df3afb60ef6e2e208a986
MD5 6551bb7653b124a19c93401988b1381b
BLAKE2b-256 b047d570cd7efaed8b920ed715d328ae280f8de7b0934f6d2ef82552eaad081c

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-2.3.3-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.3.3-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 c3f4abd6a943d5234b8d15db5a1e5d75eb1d4212b81b5044c096fdacc41bdae4
MD5 ba78dcb06ff812963ec0ad5b7bd7d596
BLAKE2b-256 f89fd6acecaeaf8435919353175eeec2061ed945b4fd6319375e522d4c6a3911

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.3-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 63907c30d273c6f19f70aee24cc39a5d4df6f7fc43b45ccd485a8614b0654a6f
MD5 7f7620f09d11aa5b2bce366c62f3d85f
BLAKE2b-256 887f65d91d064f18f5fb5c0c7f099ac8acb1c363cbc91316c441669309c58fde

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