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.3/aliyundrive-webdav_1.8.3-1_aarch64_generic.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v1.8.3/luci-app-aliyundrive-webdav_1.8.3_all.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v1.8.3/luci-i18n-aliyundrive-webdav-zh-cn_1.8.3-1_all.ipk
opkg install aliyundrive-webdav_1.8.3-1_aarch64_generic.ipk
opkg install luci-app-aliyundrive-webdav_1.8.3_all.ipk
opkg install luci-i18n-aliyundrive-webdav-zh-cn_1.8.3-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.3
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.3-py3-none-win_amd64.whl (4.1 MB view details)

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

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

Uploaded Python 3 musllinux: musl 1.1+ i686

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

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

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

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-1.8.3-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.3-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.3-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.3-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.3-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.3-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.3-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 ce1d51e652368ab3bfc88bdfc24cfac7e919173ab75376471c632570e690a5bc
MD5 da436ac0346f1a9783678f45eebb63a6
BLAKE2b-256 38cfadda8b7beb0e02c6ce2f4193196a4e522a754ad66c8e9731a00f792d84c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.3-py3-none-win32.whl
Algorithm Hash digest
SHA256 56ee9e4995cd59a7a3bfc91cb71245f873016e0fafa17d63f67f0c99dfce3be2
MD5 ab896daaee3103ecbeabd77fbcf93daa
BLAKE2b-256 db566b1ff2b817cc23db342c854690a9a3dcfbb01542a08b7796e21f8b0a7ac1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.3-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 7805452f23bbe8e5e974e08f17aacef3d0a47b51f69bdcbe78102d909133b8c7
MD5 e76c42398ad98f4aa220f5e5aa740750
BLAKE2b-256 1ba9d7b3ac19845a508b42d4bed62427d56ad4b9f3ab5046175df34391dfc75e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.3-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 8bef0aa78a23df2dbc6042c9104621af223d53ba5ab432758b769108bdc62dfc
MD5 7d7089488c0a6ecc24843def59e98466
BLAKE2b-256 2fd13d0b51b6759b3d403d9f643cb18e31489fdf9bfdb9c7d5cb77f497d549e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.3-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 1491e2697d6ff75f58d2a488e14ae4c9911e1dfcc808af0ebaedf3d33e09a34e
MD5 434d8e9380de09e6d4137a295c0d85e3
BLAKE2b-256 6ebb752b1090c7730ed7179e1a0c05aa16d27a05b129a87a1a8b407a5ac91bf7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.3-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 7231f3bb15ceb62c6a3c81773a3f44cd695ca83a2c8c25f1d92d63712c7b4e05
MD5 a3ad52123bab4589a407d226245c654b
BLAKE2b-256 add78f1dd71c3912983d7bd813d24316e1175d0ac089b33c602c963ecdcdca0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 53b2c1f1d56c25223e19e7b82181dbf12b34b3a40e9cc1e93c0dd57fe2718b89
MD5 e2b36fb5606a211ac42dcc959f94e79d
BLAKE2b-256 ec762ac153a5463af7ca34cee6723cd24545cc079156a40316584814893ddca4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 953ceaf046a0960814a8e89fcae1b04aa78f4702477e8d18b1063ff8aa166cea
MD5 4beea584bfb9d600e74cdcf9cfab5bda
BLAKE2b-256 d45fa441b568b6bb34d291621df80768ffc83887bfbe111d80ac1f2da4a4ba57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.3-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 d1a22b08da07fb44be8e965e93a3fc9a449b0326ae0165210d53e1d69beb5cd3
MD5 9e4985ed9a21a06c4f89123662b5dd3f
BLAKE2b-256 64019417308d2cda979b25091458e9ac33252699bb2ed5d704279434d98162c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.3-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 761a0c36420b9073a2dce17f536c028b01f1a99ba147b0c044cbea7784305076
MD5 4228a87db2f34d54e2faed060643bef6
BLAKE2b-256 e4b18ab1ab77c02172c905576ab3970540d31b63fc7cae527433c83becd922f5

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.8.3-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.3-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 ce8ab14d87d0e94879b278ea2177fc7a0fae0e0b04c58d1774fdffe757afd659
MD5 908bfb6d2a7de19eb1d092bf10667bdf
BLAKE2b-256 041927be48c09384f4e327307b54d7e8a75581c3182186e7f8d48241b68e467f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.3-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 8fbd1c635f80e50b2efee62e4bfc8a191b929de5d052c5c1751d96dbc8ecdf7a
MD5 3245be2bcd260afd7e853bed027abcaf
BLAKE2b-256 6c2f1d11af96bdcb679342d7c8dd53908dafae58159ed0b9cae8d5c36a88857c

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