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

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

Uploaded Python 3 Windows ARM64

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

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

Uploaded Python 3 musllinux: musl 1.1+ i686

aliyundrive_webdav-1.8.1-py3-none-musllinux_1_1_armv7l.whl (3.6 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

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

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-1.8.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.6 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARMv7l

aliyundrive_webdav-1.8.1-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.8.1-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.1-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.1-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (7.2 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.1-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.1-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.1-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 ae67b053b6d19313fb9e14a55390e997179caddeada855a6158dd0f396f65442
MD5 a53cfa6779312958074649d7654c010c
BLAKE2b-256 0aef30e9bccebe8d1879b8bf9a275673e53048a16ddde10b59c28f15d85f6fa0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 1c633e7e77d57c76ea831f114e895c7c6b3ba609a6aa55840c5f5d96db264da4
MD5 3dc8acdd3f1f6f04e5796b6a41bdb979
BLAKE2b-256 1b00a7d5f09aa8158e3ee631d5c660ed46df5c3dfdf85db5d13dbfeb6dbd04bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.1-py3-none-win32.whl
Algorithm Hash digest
SHA256 0d14eaeee8ae3b762de3510eee6a8845f37608013ece15220a2cdeb8cb83e88c
MD5 da742049ee26033fe17da9fb956245ea
BLAKE2b-256 ba538f077a07905dc766c2a8f3cf53e2708e00d8ba69913ea48cf9ebd2b733ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.1-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 18fe523d72cd016ce60fe25c45e295548bb3c4c8810a206d1a0f3dd620354aef
MD5 b0cb8f7c7143d7b15bed35833a76d809
BLAKE2b-256 b803284dba1aeea89096cf8489dfe73b93c5ad2f138b2903ab4a9e51a6f6b65f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.1-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 28aa15d5a202bcad15e547bf1a8d21a3bc2758faff0c65be42e9247b83f00fae
MD5 4cf73faf1fb2ada670db930c9de32f3d
BLAKE2b-256 e11b7a570c151c25b30615bbf11b9d6b1cf6361790cb96ad2e751ca1306d65a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.1-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 6f2a86daf4a0772a52f35c3e167e93f4e3f1ab11d9f3e420db8adbf42f3085e9
MD5 d4e5293f96ad19287b60408094a79950
BLAKE2b-256 ef13a7e856edbcbcc1a28c9dbe629c83257a7bf56131c8f4448312f38d0d9e97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.1-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 4ca39b013747b68aaee5ea477201611b92db45c95af1e15ea9cc815c400ed63c
MD5 1868d3ac13b76875f8a1dba9f48903a3
BLAKE2b-256 a3ea80348166a383f2e34edfd96d1136af670c520f67eb08e36155b96cc8f105

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 33dafe70cd4b4725f5ff77e65653644d63df066685d0a4f3695152551066b79c
MD5 4b41888ea7837b1cd0c7de37df1f5843
BLAKE2b-256 1d28666a96935805f070d678b0f64cb83cee807f5886e1c0e6443019094b2012

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4c339ab1ef7b1cce080dde218d73abf9e0a6c75eece3e46b292fc448560f9288
MD5 6ffb5a38dbba22d3ca381038da46473a
BLAKE2b-256 ce974090c447e023e73a9bb220cd0d6c36b6238a7afc6eeab97b1dfbe87ec59b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.1-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 fe23d9cc127417a2847a45160014f78574b0487731c4671343178f56ce3141e0
MD5 d707908050bc03beb3d06219abce162a
BLAKE2b-256 8ac0d65ed04e925a92816328d34d88df0d65367b20364dadffbb39819d0fce48

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.1-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 cae8b6a3a224aeb48e3e8d88d07c415cffec1356b1f277d76863810e4c1065da
MD5 0dfece18563453a137104f1d38199c7e
BLAKE2b-256 8bd457cc91b399213bddab7f68ec1e4f142713fadce6b7b5f8bd377ecfc5523d

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.8.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-1.8.1-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 02daba58823e60465c09bea0984e2d15faf5cd82107b13502b44037153a2cac4
MD5 99dd5c548f4c4a7bd8312c7f2fcb2352
BLAKE2b-256 760b4fbbd98e71e0a1f29fb34f8529e0344ee8e81592bea5a7dd9c1dd063d0cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.1-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 8553f7d4d18508992c9b2e6c4b4416af5af9e559b208c5087dad8369545b477a
MD5 1a6881687b89982f35c5e15b104bc35f
BLAKE2b-256 b019f85235141a32508f8fcd43bf5cf6bc348f1cbc2ce205a7dfcf6c0e51fea4

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