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

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

Uploaded Python 3 Windows ARM64

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

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

Uploaded Python 3 musllinux: musl 1.1+ i686

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

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

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

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-2.3.2-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.2-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.2-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.2-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.2-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.2-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.2-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.2-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 b1ad103340719d5fb61d7e81968a959570188f55f71285cc034026f86265d653
MD5 7b9e6a0859f42ce0dbd2738e0fa623e1
BLAKE2b-256 42d0ea2e520bf503b0f9f5dbd4441204a9c2b0d1e97556a0d798ab467c0d28c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 d79547fd9382cec5c1b21895464877238c6208201d02ed48270082bc63b6113c
MD5 50934c9ccdfe398a2b49300da9e4f504
BLAKE2b-256 7cb49c6663d4885c69e547eaef6e853564858d04b611ed77fbbc955c28051918

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.2-py3-none-win32.whl
Algorithm Hash digest
SHA256 adceaf180f17907a440900f2146aca23cc69d5551b84af73992880edf8cd834c
MD5 6c08f33ac0942c659b3b189cbeba4d2e
BLAKE2b-256 a3dea1c8f0a2adc3ed85a7a04e4b641d394dd01eb5f3cea0aa9abc6b971834b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.2-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8afa10ce0febddc5acb96a91f0c9226aa54be9d5f85277afc3608bd0eb668280
MD5 d68d03e09a510e2bced42246b126eac3
BLAKE2b-256 c45d4505659040474a4039db1ec2acd5333f7c3607097e21081f489528297a94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.2-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 6fd5dba4e889cc42a9dffe3287735f232fded33e2306df14dc431b17190c9453
MD5 b5dccc4ae8cd36840014cf5460ddc36d
BLAKE2b-256 627e4766cba160e82d4db47c370941417277106fd92bd472fbf81818cba5005c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.2-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 6abc5caff98cb5d730e05e867ee8fe72173444db79f8830e607ab027739a69bc
MD5 ea6835b75845603d0758b6ed81808a44
BLAKE2b-256 1b70963510f8062798d5427468cfa906b0d570ea59847505ced74a2fcbdcb179

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.2-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 2725268217b02a9775d4ed0803997fdf778bdcdaf3547f994ee6fe8550ed4d34
MD5 094174af2a93f4483fd4b2c33461e4d2
BLAKE2b-256 5fdead27586712d8e187c78abcace5362f30ca13dfd86434df2c8c986c5c4218

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 64d2dc4019b4a72507ea27f2a44eb0a3da1b87a1aad2328a44604221f86f90f9
MD5 7e51b75027f98aaeec371cfbd38da4da
BLAKE2b-256 b0935df900b15e9bfa79c5eeb49cc84907c6ad47253009a3106dd8a87b305558

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f9cf4a01ed57e51a1fe09aad61c0c23ad316c3e4aaad0df43e4f9f25dce04b93
MD5 07485768ebff2eb5acae7de925ff1c04
BLAKE2b-256 795fd9c588df2724cee8ee2f944863f7a8f4e30e11e179b1741bbb66c3bea1ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.2-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 fd97740b958cb340fd98ba10aa11c28faf324130d6a777ef786c681c52f5c2c7
MD5 4ae2f03c28a58051a21825f8b49378ae
BLAKE2b-256 304beec9bf4c27693ea6903af9b4c8df0c7ec4eaaad45a6a2dca213ff62f372f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.2-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 2a27188688100ec1d7281d755ef58eadf1f5e73bb06d8f82936fd0654f981bd8
MD5 c4a3f7d5ca947428aca61c58227f60dc
BLAKE2b-256 dc3a3285a1b7010acb949a0dbd56c1489846e7cc4d9ab6b364b9fb2effad7e75

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-2.3.2-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.2-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 51b3286082cf680662afc7e9d2ebf0932a9dd544a2b439cea33282b931f3a9d3
MD5 bc4110ffee754acc7ebffe602ec5d019
BLAKE2b-256 1a497f8dd858d6c3b0b7ec7e42ac3608b723cf269a16a5ed24cf7eee980ca42a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-2.3.2-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 839fac67988c6a4765adaaf8f2938c4d829e90eaa308c6001ee3f8011891da6a
MD5 6be33fdcf39d23e3a2b59dfd68444f43
BLAKE2b-256 1d5c9fb10a28e5cff0265d52caa1a453fcfc0228bb6b3b6e2535bf08186c0bc3

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