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 项目。

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

特别赞助

安装

可以从 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.6.2/aliyundrive-webdav_1.6.2-1_aarch64_generic.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v1.6.2/luci-app-aliyundrive-webdav_1.6.2_all.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v1.6.2/luci-i18n-aliyundrive-webdav-zh-cn_1.6.2-1_all.ipk
opkg install aliyundrive-webdav_1.6.2-1_aarch64_generic.ipk
opkg install luci-app-aliyundrive-webdav_1.6.2_all.ipk
opkg install luci-i18n-aliyundrive-webdav-zh-cn_1.6.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.6.2
WebDAV server for AliyunDrive

USAGE:
    aliyundrive-webdav [OPTIONS]

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]
        --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=]
    -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=]

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

获取 refresh_token

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

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

  • 使用移动端 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

This version

1.6.2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aliyundrive_webdav-1.6.2.tar.gz (645.1 kB view details)

Uploaded Source

Built Distributions

aliyundrive_webdav-1.6.2-py3-none-win_amd64.whl (4.0 MB view details)

Uploaded Python 3 Windows x86-64

aliyundrive_webdav-1.6.2-py3-none-win32.whl (3.7 MB view details)

Uploaded Python 3 Windows x86

aliyundrive_webdav-1.6.2-py3-none-musllinux_1_1_x86_64.whl (3.3 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

aliyundrive_webdav-1.6.2-py3-none-musllinux_1_1_i686.whl (3.8 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ i686

aliyundrive_webdav-1.6.2-py3-none-musllinux_1_1_armv7l.whl (3.5 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

aliyundrive_webdav-1.6.2-py3-none-musllinux_1_1_aarch64.whl (3.6 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-1.6.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.5 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARMv7l

aliyundrive_webdav-1.6.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.6 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

aliyundrive_webdav-1.6.2-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (3.3 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ x86-64

aliyundrive_webdav-1.6.2-py3-none-manylinux_2_5_i686.manylinux1_i686.whl (3.8 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ i686

aliyundrive_webdav-1.6.2-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (7.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-1.6.2-py3-none-macosx_10_7_x86_64.whl (3.7 MB view details)

Uploaded Python 3 macOS 10.7+ x86-64

File details

Details for the file aliyundrive_webdav-1.6.2.tar.gz.

File metadata

  • Download URL: aliyundrive_webdav-1.6.2.tar.gz
  • Upload date:
  • Size: 645.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for aliyundrive_webdav-1.6.2.tar.gz
Algorithm Hash digest
SHA256 4abfd460537418f575dce4257ccb4ecbeb9fe9dd655094f90d71858d2fe53423
MD5 eed5cd9e1eacf86f9064f90fe0ed0a79
BLAKE2b-256 951835ba1f956bfdabcdf9020cc80c467610a278ca8eba20082b62f844773ad1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.6.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 959bfccb60891ed0e7b85a839c4067327ed31a7289a1acde4ce7d6b8939b425b
MD5 97836507c0596bac2aa74e494524487b
BLAKE2b-256 aec16f54b52e5f78cc5fe5af9d654c67ca7d3c60cb1925d3c24e81572f3edb52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.6.2-py3-none-win32.whl
Algorithm Hash digest
SHA256 a3b365ece4364ec46776cea2f11f5b0b0c0047e8cab97d884c3253a9bc185691
MD5 56a3bb745f2726acb552a9f99f66c568
BLAKE2b-256 2d64607a4daa1b4ae29c9f29d8e3979612bab6e7acdeab4a8f131f1882611e91

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.6.2-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9e41dbeeb12461e4041840e7020641738a6efbb4355cad6dbc4982896977172a
MD5 c8cf156124facf6840376436219943de
BLAKE2b-256 20da97eb405cfefe50f95504fb95fe52737f61ae7eca77e343ab39e2447b9ccc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.6.2-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 9476c330d40ad2cb50bbfa6b5173f827a723db5955ca99b14766e74ff66ed865
MD5 5a37eedf2f9c78d8e4b9e6d972fb0c16
BLAKE2b-256 7539bdd627613cc63ecdff58e51ec1bfa34b600d04129f904a90471bb1bffeb1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.6.2-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 a1a910b8ae728c1eaa7a4e8765fc325a6ef876332c497511e7d2c62bc1eba4de
MD5 294abd7ac512e616bbf073335e5670c5
BLAKE2b-256 9a2ce2f245210ba09e4e5610369fdd30b21e80bd8baf3f11a00c4250a5168d63

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.6.2-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 192254b8237dffdded2e5bdbf40e0f2f9129b7cdd30e540cc2452b1b6b1b4e9b
MD5 2bc843ef8bf5eb9e3eaecd598ff286c0
BLAKE2b-256 1e3264b126fc35431c50404b650de2d20ad0f1f5f31ed43755513cc81763b3df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.6.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 6a1457fcf5c7e617895f4264eb776872db361612de9e4a0f2ecfe0485b68f6cf
MD5 ebc2ac6248f3e3f1db9b688905de82d3
BLAKE2b-256 9e2bece8ad89a72adacdc1aebeedfcfaecb1c27c36995e2f9b2eb0a523af29d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.6.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 32dee8027d7854fa09bcffaec36816191cceb85f22194e8d8f0aaf15bbc4642c
MD5 dc4be35c7e503da78e91cdefcd192cb1
BLAKE2b-256 75051bdc86c2337fa0938afcb5604a324520c7ff4e254181708f90f40aee9795

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.6.2-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 77d0c5544b9020ed963073e662e3dc5731e82cd6ae575792f547d6112df2c4d4
MD5 4cd56c79b5f32d1c92e7b37c2b065506
BLAKE2b-256 10ec317bb3302226ade88d43edb1da97633754fef43906f637c2d08d930d8982

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.6.2-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 807b543be48ebaf4d6fbc8566f4d47a5f9137c5b864414206176d5dfe85d0dc7
MD5 dc895e9b3e7128503fbbc559a3ce23c3
BLAKE2b-256 a910f3c46ad163660210361d9d77939ed63434a21defc631a202a5276d7005f0

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.6.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.6.2-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 4565397b456c564ca1d239d646f582cec3a1bd355aeb9df9f58fc8c44a6b54d4
MD5 d7bd6682fbc48f660ce5fde43db0aff2
BLAKE2b-256 91918d5959c4bb972db08dd0bbd07ad319a23f873f815428df8f63d2c47b4531

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.6.2-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 09591f03d5055daabd240ecf90ab1cf3fc40502810baa052ae39431b9bdd9bfc
MD5 0078821d5f89e881a86c759d1c08dd0a
BLAKE2b-256 841f3d9854d177e11de7f5b9ca0b36a801e27f664ce4a7c3299f81f0fb8d4c6b

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