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

      --drive-type <DRIVE_TYPE>
          Aliyun drive type

          Possible values:
          - resource: Resource drive
          - backup:   Backup 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.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.3.0-py3-none-win_arm64.whl (3.6 MB view details)

Uploaded Python 3 Windows ARM64

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

aliyundrive_webdav-2.3.0-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.0-py3-none-musllinux_1_1_i686.whl (4.3 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ i686

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

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

aliyundrive_webdav-2.3.0-py3-none-musllinux_1_1_aarch64.whl (4.1 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-2.3.0-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.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.1 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

aliyundrive_webdav-2.3.0-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.0-py3-none-manylinux_2_5_i686.manylinux1_i686.whl (4.3 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ i686

aliyundrive_webdav-2.3.0-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (8.1 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.0-py3-none-macosx_10_7_x86_64.whl (4.2 MB view details)

Uploaded Python 3 macOS 10.7+ x86-64

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 c5f2c97ca262de9db1d841246b5068cd9cd9c2fef74dd4629f6438867e1b28a2
MD5 905d80fa22abafd47b4a725fd4847586
BLAKE2b-256 2191a179895fb1dba56183a3096206f30627de87a32d76d236fc4725545d0e7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 9dffd12ec31bb733cc9da201d945c280985292bc39b3ca849f6132bae72f996f
MD5 6d47875c364845729b7a8b3f4a1a3809
BLAKE2b-256 f7bffd3246c16c3cfa5c12548043036075459f63d49c67cde807b44f47071d1a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 4cb5f79e4726d0284ee4a5b878a9f97b0c0a817a6b8defa0ace23124f7d3aeb4
MD5 f1507297d9a5584b15e18ab4c82e3234
BLAKE2b-256 52a07091b7d9d4aaedd98f0759b1becfca3213e454ddc29ddaf2cd25bbb46e22

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c46cadfb58b99f7d2c179d0bbd2047ed1561143720e0ae40b6ee818db2110c60
MD5 952abc42de5325d2fb6fcdaf50f41881
BLAKE2b-256 89000f3fe9554d66659593bc9095d28e1b74fdd5d099523c76702565fb457200

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.0-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 4b9d4d82cf1d626a45cd642eab40de3117d137d1ebe6cc31cf2b32ddb9770d2b
MD5 1951363a0720093abbaedb72321f1c7c
BLAKE2b-256 40c57eb4ec5409ff6e720b6891d806f00c02cff9bbdf3e1bdc1ac21539bbbf8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.0-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 8320cbf8fe81f4bb72246aec0d37e082fe162c02be6bcdf67c22ddaa1eba1a39
MD5 c3a5bba33b08d376ede300a5fd8cac8a
BLAKE2b-256 44960577159ddfdfb24e1861e1e9fc44df048d2b719a3867f84d58b330d417e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 1492d9db9c338a541de265c5cc2aca7bfc618e43e8865d6020c268782914e656
MD5 4f3d6bbf0f36c4087d666b33631acc92
BLAKE2b-256 26fa7489dff526712a36382c119c0c81f5293ade6f179c433c6c24ccd0429563

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 cfdaf0b3a68d773d37264b11467d0223f6ee209b7965b9d223324442a78da6dd
MD5 aca49c5d8b349d43bba1951b5a46d6a2
BLAKE2b-256 005bb1b887787ebf2a95093f626a36edf72b938d71bcdf26297906fe287fa156

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 24eb3f3db417d9dbd6f117b7234d1507864b7716bc9550ebe1889190716b687e
MD5 a427e8f5f5efbb0449c968c8bec6931d
BLAKE2b-256 a5595b802552be6dd09e3a9a8c45745f3611008400334f2741baf75585f7e5cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.0-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 4909e1d5436dfe659609300224a31b263feeaab50c04be60718c58487285e2c5
MD5 4444e51f7763082f1ace958828872c3a
BLAKE2b-256 1beefb4d0e951b127f2647226b48cf86a5f59deceaf222f475c308f6529ff9b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.0-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 c357bd9e3e70858762c8fca9a96496afed91b5e2024e5741af0dfbbf11577747
MD5 46e18f8e8e020ef62c7591f907dc598d
BLAKE2b-256 2c6534bfbda151fe5ad1ec5fe761b5c454a147a082f32ff3ce52ca6af02af7c1

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-2.3.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.3.0-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d3760ff4fc3cc77966e556a3611ff0694ddaf13ea84ec563eeff585f4bb7f590
MD5 278d28eb3667bfcaa5026cb41200898a
BLAKE2b-256 fa919da5520ebf3a157fab28e565edd2082807ecb31d4ef28bd5ded6b69081bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.0-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 9497d51dea64209c2cc7ce26508e530d7986a8a6085f57663cc2465fd1ad09b5
MD5 7a72b2831948bc1d141f4250358a379c
BLAKE2b-256 894fcc24c2ffcc7ea5c4475e470ea23f6bdb4e4b00e7e7e4e7147c2fd854d3b2

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