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 等实现在电视上直接观看云盘视频内容, 支持上传文件,但受限于 WebDAV 协议不支持文件秒传。

如果你使用 Emby 或者 Jellyfin,也可以试试 aliyundrive-fuse 项目。

如果项目对你有帮助,请考虑捐赠支持项目持续维护。

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/v1.8.2/aliyundrive-webdav_1.8.2-1_aarch64_generic.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v1.8.2/luci-app-aliyundrive-webdav_1.8.2_all.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v1.8.2/luci-i18n-aliyundrive-webdav-zh-cn_1.8.2-1_all.ipk
opkg install aliyundrive-webdav_1.8.2-1_aarch64_generic.ipk
opkg install luci-app-aliyundrive-webdav_1.8.2_all.ipk
opkg install luci-i18n-aliyundrive-webdav-zh-cn_1.8.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 配置界面

Koolshare 梅林固件

GitHub Releases 中有预编译包 aliyundrivewebdav-merlin-arm*.tar.gz , 目前提供了旧的 arm380 和兼容 arm384/386 固件的版本,可在下载后在软件中心离线安装。

梅林配置界面

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/ 即可看到你网盘的自动生成索引网页文件。

参考文档

命令行用法

$ aliyundrive-webdav --help
aliyundrive-webdav 1.8.2
WebDAV server for AliyunDrive

USAGE:
    aliyundrive-webdav [OPTIONS]
    aliyundrive-webdav <SUBCOMMAND>

OPTIONS:
        --cache-size <CACHE_SIZE>                    Directory entries cache size [default: 1000]
        --cache-ttl <CACHE_TTL>                      Directory entries cache expiration time in seconds [default: 600]
        --debug                                      Enable debug log
        --domain-id <DOMAIN_ID>                      Aliyun PDS domain id
    -h, --help                                       Print help information
        --host <HOST>                                Listen host [env: HOST=] [default: 0.0.0.0]
    -I, --auto-index                                 Automatically generate index.html
        --no-self-upgrade                            Disable self auto upgrade
        --no-trash                                   Delete file permanently instead of trashing it
    -p, --port <PORT>                                Listen port [env: PORT=] [default: 8080]
    -r, --refresh-token <REFRESH_TOKEN>              Aliyun drive refresh token [env: REFRESH_TOKEN=]
        --read-only                                  Enable read only mode
        --root <ROOT>                                Root directory path [default: /]
    -S, --read-buffer-size <READ_BUFFER_SIZE>        Read/download buffer size in bytes, defaults to 10MB [default: 10485760]
        --skip-upload-same-size                      Skip uploading same size file
        --strip-prefix <STRIP_PREFIX>                Prefix to be stripped off when handling request [env: WEBDAV_STRIP_PREFIX=]
        --tls-cert <TLS_CERT>                        TLS certificate file path [env: TLS_CERT=]
        --tls-key <TLS_KEY>                          TLS private key file path [env: TLS_KEY=]
    -U, --auth-user <AUTH_USER>                      WebDAV authentication username [env: WEBDAV_AUTH_USER=]
        --upload-buffer-size <UPLOAD_BUFFER_SIZE>    Upload buffer size in bytes, defaults to 16MB [default: 16777216]
    -V, --version                                    Print version information
    -w, --workdir <WORKDIR>                          Working directory, refresh_token will be stored in there if specified
    -W, --auth-password <AUTH_PASSWORD>              WebDAV authentication password [env: WEBDAV_AUTH_PASSWORD=]

SUBCOMMANDS:
    help    Print this message or the help of the given subcommand(s)
    qr      Scan QRCode

Note

注意:TLS/HTTPS 暂不支持 MIPS 架构。

Note

注意:启用 --skip-upload-same-size 选项虽然能加速上传但可能会导致修改过的同样大小的文件不会被上传

获取 refresh_token

  • 自动获取: 登录阿里云盘后,控制台粘贴 JSON.parse(localStorage.token).refresh_token

  • 手动获取: 登录阿里云盘后,可以在开发者工具 -> Application -> Local Storage 中的 token 字段中找到。
    注意:不是复制整段 JSON 值,而是 JSON 里 refresh_token 字段的值,如下图所示红色部分: refresh token

  • 命令行获取: aliyundrive-webdav qr login

  • 使用移动端 App refresh token: 需要在其前增加 app: 前缀,如 refresh token 为 abcd 则填入 app:abcd

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

Uploaded Python 3 Windows ARM64

aliyundrive_webdav-1.8.2-py3-none-win_amd64.whl (4.1 MB view details)

Uploaded Python 3 Windows x86-64

aliyundrive_webdav-1.8.2-py3-none-win32.whl (3.8 MB view details)

Uploaded Python 3 Windows x86

aliyundrive_webdav-1.8.2-py3-none-musllinux_1_1_x86_64.whl (4.0 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

aliyundrive_webdav-1.8.2-py3-none-musllinux_1_1_i686.whl (3.9 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ i686

aliyundrive_webdav-1.8.2-py3-none-musllinux_1_1_armv7l.whl (3.7 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

aliyundrive_webdav-1.8.2-py3-none-musllinux_1_1_aarch64.whl (3.7 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-1.8.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.7 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARMv7l

aliyundrive_webdav-1.8.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.7 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

aliyundrive_webdav-1.8.2-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (4.0 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ x86-64

aliyundrive_webdav-1.8.2-py3-none-manylinux_2_5_i686.manylinux1_i686.whl (3.9 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ i686

aliyundrive_webdav-1.8.2-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (7.3 MB view details)

Uploaded Python 3 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64

aliyundrive_webdav-1.8.2-py3-none-macosx_10_7_x86_64.whl (3.8 MB view details)

Uploaded Python 3 macOS 10.7+ x86-64

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.2-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 c349d9cb22e98a20e699451f8f50613d331fdf344f6714498e23f054f4067fad
MD5 d949fea124a0c418f7dddcf0c2bb2c7c
BLAKE2b-256 7b07cff424990e5d42e96453594543e8760dad84fc365d9cdff994d3e9d1bd57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 4cdf33f4bf13dae065322dc286d2dfb943f288f80742cea825e261295c750b8d
MD5 7915cc6214edbe743845476495e16ccf
BLAKE2b-256 1ef31cdd64a0efa7f73aff33db3367a188474fba92e8a68adda14d9b8e1cb75b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.2-py3-none-win32.whl
Algorithm Hash digest
SHA256 17e3f2138eb7642a107ca446ae745abceabe7b627c2f0e892df30afb5fc25bcc
MD5 3735e5502d21d8329bcbb56e730129f9
BLAKE2b-256 fce80b32fe3f25d867699de2ab8116c48c2f64bb47c7be2e33952d558fbbed6e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.2-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4419a6e828206603998f2bc8f1d34497563ad06f8423527e1cc63648edbe40bc
MD5 d4fcb00d818848fb853c09830ebeec75
BLAKE2b-256 34e7c33ebab45301684f27c3cc1d12b7b6b17ed00abff6c625df19cc1611ac97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.2-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 3fc1f19f9d341f3bae764a3efb57610900a1936ac1eba4960b9a95a7127bde24
MD5 b3c8efd066073d85e9817e6dbfffa850
BLAKE2b-256 84e2c1a86a111c7c2469812b54097ba6aa346b16491dd3e65682bd81dec630f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.2-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 6049541fa96ae7e145a1e2a053ab7312bce2f5e109efbaaa78c4a315243db914
MD5 90f50f4ae79838776133bb1d45eb721c
BLAKE2b-256 46c721c26c648705a985f76487c8e174f2fe9a9708164097da082776af02a87d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.2-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d15a16f6783c2d7a96e871806f5edd280b9254402093bdbdd5acabbef9f30d54
MD5 9e03cc3582ba86be0edecc337cdb85bc
BLAKE2b-256 558213e587932d0ddbc8b8484da02aa0919b1cefd543bcc3e6af7579300b3a72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 1950c3d415ad27d396ec71d105a468a59f47a2179ca0cfd109ce65fa507ecdd8
MD5 0d1c0006d362efd6bee8397c27d7a922
BLAKE2b-256 fccc8ef8da9d908a296b048a33dfec8ce35bb9100b147f2906d055bc850bc148

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3c80676fc6047a0767ca74b2d71d66f08cb01ab25c1239ead4062b1fc7ddd3aa
MD5 c77b6171d8270051978ab4987c57903e
BLAKE2b-256 1b528941b7227c3927024b6457faede67a7369aa98e8e7e82813eeab3a834f64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.2-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 aecadc8ab1427804dc243a8c21f6a45b3f786704d2f0c755d6fd376bc75659a0
MD5 e6d7d66cbcfd83ebe85c26d8dbc6a7ba
BLAKE2b-256 59b6f8073338c9059651820026a29e473d676fb82b8315fa196dd8a9f6a838bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.2-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 b1f4dfd8033aef4348ad8585fc6c2e6e0b1e8dd2b33ac655161ef70cfb0d3dfb
MD5 bd4e9f0d8d765502d560195a10913a0c
BLAKE2b-256 16919c9b4a2499263b993d6881fb3d16d33c129fd677e4308e6028f18be07e3a

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.8.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-1.8.2-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d11d45a8d063afb3ff25ed94d8a06a54ba614bea465c2735e72436e400ab34bc
MD5 9987fee45ae931c7409e31357362b39e
BLAKE2b-256 472c26409fe24259fa7468b5ad3d785f3268d0afa8909f74150ab07dbb81ab9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.2-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 5bf53ed379deea8c04351ef9c4284bb1f6d8c03d195c92056d7efadb6ebbd30b
MD5 a1caca7ebeb57b7995731a3d66779c1e
BLAKE2b-256 e2a09206b41549d1b3cce6da9382266c25b987fd8761803b864ebf8c9b4f8537

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