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

Uploaded Python 3 Windows ARM64

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

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

Uploaded Python 3 musllinux: musl 1.1+ i686

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

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

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

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-1.8.4-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.4-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.4-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.4-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.4-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.4-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.4-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.4-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 980b2ba5d61ecc4a8bcb94d0581e232e577686cf6c1b0188e6be812e1739485d
MD5 f77620661471abda7912514ea6cd2ccf
BLAKE2b-256 b89e02e183c9e05a7aa870fcb709c6589be23a5ca8c891721cf4a0aa098ec0a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.4-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 0323406e9690f6d193f6368515898ad6be25b1f21071d0df93a9f38cf2a34bc7
MD5 5bd6bfb4d8b01fc1d7cc83b758efdcfe
BLAKE2b-256 257b39a8444c993981656578fada2a2281cb7bf64c7377b682c741b7eaa76544

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.4-py3-none-win32.whl
Algorithm Hash digest
SHA256 a3211488a1fab52dc0394f2aae590b1ff8fcc63d31b2c46455f48f1128177493
MD5 f84775674ec982e020d19da7dcba0fa6
BLAKE2b-256 efff044dc1f9ee060c50a528e1a87f6bc81ccd5dfa91eb270959f980c145342b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.4-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9f8ad1429e93cd34ff13f853ebae1350327e47746f8dc4ac4a810e3de8eb335c
MD5 8fa2a7bbddab40a6b25865c853252aff
BLAKE2b-256 43537dcd6e23c994096d4472d169b144ba4851122e11f08b4ede8627a9979974

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.4-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 9572b719c11988499308046335b4fb04af0cb9ca749e29fe7733fa3c8c3594f6
MD5 e7d3334d3765b720cc907ce20f6e3698
BLAKE2b-256 3f052104043f45f97ebbe1ec428ce153470d9edee3263f6f5253b5a8095ae5ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.4-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 dbae889f1c01ffbab4daab1806be879700a80656201b7bb836b6e468ef323efe
MD5 52dba52be8fba3c06dd551034b3d59ff
BLAKE2b-256 bc9246abfcd323d72aa8f072bee8910578ad724cc13c52dbbd7b24b27ede32a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.4-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 dd29771990ae3a16619dd197529b6835160d8e5aaa29d0aab5bad615ea4291f0
MD5 2dad587b1e98fa7193c90fe8bd6afa82
BLAKE2b-256 a51c4fa17f8df5d0af4c07e9e3cbe48f127896ac71a997baf0f4381d2c53ed51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ee797bf9f30f25f81cd2793155c5e9fca5bf8f7c82b034893b9714390d2460fe
MD5 18555be871909bdc3f0f225238313950
BLAKE2b-256 cd4068620e90e2d9265f9ce5357da42e7c1d8a07fc50a00464d95a5fc32818cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d456a37f0a1a535ce1a715ff4aa472ab09c1260141ef18115a2606871b010e11
MD5 934c75c2646fa0c42846fb32a9ad51ab
BLAKE2b-256 b09fe3747fb9a141c14f9506a8f6c760216681a9d74b1d4d54cee60a6f4bfb1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.4-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 6d5ddc79b7627a80cf769779ed570dbff333a9526a6299f349e9a245ea1e8415
MD5 3ddbe6aa426a1f8955b02f7ba5fabbc9
BLAKE2b-256 dbbf707532ff2c5268ca3e57b005e446bf58a51fc3a94f21f201b9fdccc9fd03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.4-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 0e6518de170b50d179c61b01a6cec311df3e6a47321f18cca7e4d7fd4d96c1cb
MD5 3cbcf054668c30750a5284b8541ff3d5
BLAKE2b-256 7216a2c40c8fe9725c642ed40da6171e6436841c4bce2aa3a1f1a23f6904e5d9

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.8.4-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.4-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5e087caca48435c9d02971f1d6e0c55303a335383f748544b62075bd0f64340f
MD5 c0c031977a011c0105596d8123b4f8d2
BLAKE2b-256 a70dd81e417d28b817ffe312b14a76f5f557cac1ae9717cb68e6346719d49e58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.4-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 9b7856c4fbac36938e26757af75f4f81a9c6230d23fd37415d6e2a00bd1628d3
MD5 05a7f471511a6146392ca7c486923c8a
BLAKE2b-256 5289ea3e6247744bcf9af02bd0e74469e5a16eda7743edfcdf86bea727efe383

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