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

Uploaded Python 3 Windows ARM64

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

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

Uploaded Python 3 musllinux: musl 1.1+ i686

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

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

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

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-1.8.0-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.0-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.0-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.0-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.0-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.0-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.8.0-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 8fd9332e3afff80755d03c8a32833497f5c273f490b33eb0ba50befee9f91313
MD5 ca8048b239e3c31e169d42ac73067e97
BLAKE2b-256 8d55f8c0e92a28c72426ecc3ecd18e7100b68aa274fa3353ff00915a5c6f0f83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 7de2f553ee5be5f625ed5ca2a843b0e91fede7aa2be11463d0d0c6c91783dd23
MD5 c32da33d532295c16caaf1ef6f22637d
BLAKE2b-256 3f3103abd112a80634c09f0510a16027c91a0a5df3a5bdf73aac90aa818dca7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 2e76184ecdac159e6d901a1f2b50cbeb294c8d9efbaf96c5838bd51fe5421498
MD5 d62832e6e78d233546202bb31b501fd8
BLAKE2b-256 2aa25ee4eb8e90638aa576e17ce303b0bd5422dfe29e71d7d60cc1549bf1a08d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ef6f7aaa83087ed468aa88c9dae0c5614e032eeb03a3e41ee6d8c493cdab05ea
MD5 00dae8049247d0628a5695005d8bd38d
BLAKE2b-256 aed55e1d93809110d32b19d3d333bd48224a41eb6782d6a95a9986edda3672cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.0-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 d46efec3275c5066f77f2fde2f4391ee7f7af5867d6b5df380e6f06adbea2e47
MD5 db14167fc80938e99ee6c9b21216a963
BLAKE2b-256 3a34bac6458c3378c19bd07607d8abfe580fc5ebcae89dc9e90e41fb3c06ee0e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.0-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 862b9aa3d8b1af9043d387f9bbf305a5cca92776fd8b2d679ddd1080d7cbd178
MD5 aedd6fe74dd0f37bf45b39224f99a25b
BLAKE2b-256 5ededf47c1330fcce8b843eeb7289bded881ba293e7f1f9c433fb9368be99ef2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 393f3f26ed1800f0ba8034ac68b60a75c6aa95e576b6015396431431db9e6bbc
MD5 6b80775d5d7b4c9dd1e3991f64823f8f
BLAKE2b-256 bee52d66474a1dfa933863c3bfdff10d1275155cfaea182f319b925221b46c79

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 47953dac9ec0bbe57070577f78217d3d62083dcc0848c083fbd4727a915cb1f9
MD5 fe8162cbfed7f0d059aeac82c61481e9
BLAKE2b-256 40e80114a0d4927339ea309325ebc07cdaaf51bb9fd0a795caa0e1aace13f85b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 83627087d08cf04703568cdee67b1a737ad6f795e9ffb7fa32b0d03a799f0a8a
MD5 2283eb2ecf3c444584eddce81a7231a0
BLAKE2b-256 aa6337524b3e2e5c3660d92595b69eeb649be2eac8f196b8f98dc3fd04bd47fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.0-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b3d451dfc6262497fa596b711dde9edabed6c16d8866abcbf8ecdd76cecdc12b
MD5 af3b4604727e9ffca4a8b102a4628595
BLAKE2b-256 f6be66439ad0373476a492b1af85972b2fe784851ea17e33cbf20e8c7c40d35d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.0-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 e6f30b14798a44fa0e64e88175c489d51994b35fa01831bed87c097ec312097c
MD5 aa7baf682fdcfd11fb4fd78c8db761e8
BLAKE2b-256 4c645c1e7231021309ffec9baf08472dc4cfd682d9f0ae6347a04545497760fe

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.8.0-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.0-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 684b4f39e33f564962a9402ad8a91e40b97d1b86f4975e525d1320b8377eb71b
MD5 97b2502687672e391aaca31cb3327830
BLAKE2b-256 7b87c751290b6c6fe979a82993ee099717466000e7b52b16af0390e3919469d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.0-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 e2e5e6b923e6edecef6f9f7af096d386d708674ae956be2df17c8f6bfcfbef51
MD5 f508ce2e2006c3e111b141e3728dc49b
BLAKE2b-256 7ec381921d5403cd670dbe9b7103da53583de78370a063b43266f15556295d38

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