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

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.1-py3-none-win_amd64.whl (4.4 MB view details)

Uploaded Python 3 Windows x86-64

aliyundrive_webdav-2.3.1-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.1-py3-none-musllinux_1_1_i686.whl (4.2 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ i686

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

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

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

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-2.3.1-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.1-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.1-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.1-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.1-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.1-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.1-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 4a40bc1ec0f927c671997c7225c049d287fc385b7dd3d5c62803f73322a9bc83
MD5 016e6f7116b7c592ac7402d411ac3ec3
BLAKE2b-256 21d9be1ff3f31dcedcc951aaa42182d0873bdb1daf25987566886180fb221025

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.1-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a4c49e44a897a0f4717233309343bffad8ff94369d1017a6b3849e0351280203
MD5 f5759a14483fec6c6253c46cd9f0a481
BLAKE2b-256 1175e2ee0e890af2e86dace5e91c5ec7c2d082a7fafd87366e8c7b9095c2a9d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.1-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 7dc71afd8213b1b681e47fbb380ec8cdcf23c363fbc10e875e41b2d0ef90c6d2
MD5 420e62fce30f0bff19a01d403a8a1f98
BLAKE2b-256 8370f600926de1f5e6e7675a5cac9f3fe71e91db254279ace05708997c4c7165

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.1-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 60d21142f09e6fc2e81128d411d71d24b47069ab8929470fd76cc0310ab60ec1
MD5 fcbeddd1372db6502ecd908109a5112a
BLAKE2b-256 0141a95a0888c050f453df8c10c0d2724373c271d564084a392c61c28b31b034

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.1-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 218ebf9a11413eccb23b4c7634956ff008b031eb2a0508706758c6c4ff957a8c
MD5 e0631957d66f69b0f7f64b5b95d57371
BLAKE2b-256 3f5006d2f220b53068647bcac779f5ab4d4c5293a811615bcea04881e0dc37e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 a2a4f76960e5f41c65a3f4dc5c0e3e80794e253bc1b5cce27b84e512faa1aa9b
MD5 9212cd226a357e8e0950e4d2837ffd23
BLAKE2b-256 fc373d0fd989b34532a9ef040b7e3f2ce74a39afc54a6176e9d95e9d417e6969

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e29e5f75d602d8f814561adb9d68f361b774f94d85fcf86a23c543a778cbf8f5
MD5 bf3da737b991578e9104907f26647979
BLAKE2b-256 5252039ab7a2ebe73c6c964957fca72844fbd721dcb9798d95f58171f4500ebd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.1-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 8259168d4d926dc91e6866f23c8105825eeb88bb1ac9fd07464a274ca582ce7a
MD5 779c4c39bb46bbe3b7ef2a5b983b5ca9
BLAKE2b-256 2e9ec493c86899767df63bcc95f87e68dcf0d52e37bca2da8c9ec8a4209494e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.1-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 3eb2fc99448ff7d535d86b42af0fdb52c458f35eb28e0eef4b323b828ec4cbcf
MD5 04c3b01f451a6da34075a591d1820c86
BLAKE2b-256 efd86e1d3578f1e9f55d9efa3caf355d2545499ac83c71e28ce70ac4b8f8d21f

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-2.3.1-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.1-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 0133df6a5d38cb082301cb3e5c579d0f42a1e48b01595cb7240df2f32b9f4260
MD5 4f2eb7a778977aa2364165433196f67a
BLAKE2b-256 73dc4bd2b4e047c4a2c73d9330c7d4b0a1fd43bea42a0d9b6cbb8c22a74620f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.1-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 e958be9e887a543439c5f957b6fb1dc5604f967b4f92ca9b8307e9ca97d0590a
MD5 c592880b2c596afd19ae2af8833a4f02
BLAKE2b-256 0fc934631012c7610d2e2f63d0b1349728e1f9fb06b30d20ca7e4ab0a4af2d5e

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