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.5/aliyundrive-webdav_1.8.5-1_aarch64_generic.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v1.8.5/luci-app-aliyundrive-webdav_1.8.5_all.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v1.8.5/luci-i18n-aliyundrive-webdav-zh-cn_1.8.5-1_all.ipk
opkg install aliyundrive-webdav_1.8.5-1_aarch64_generic.ipk
opkg install luci-app-aliyundrive-webdav_1.8.5_all.ipk
opkg install luci-i18n-aliyundrive-webdav-zh-cn_1.8.5-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/ 即可看到你网盘的自动生成索引网页文件。

参考文档

rclone

为了避免重复上传文件,使用 rclone 时推荐使用 Nextcloud WebDAV 模式,可以支持 sha1 checksums. 另外需要配合 --no-update-modtime 参数,否则 rclone 为了更新文件修改时间还是会强制重新上传。

举个例子:

rclone --no-update-modtime copy abc.pdf aliyundrive-nc://docs/

命令行用法

$ aliyundrive-webdav --help
aliyundrive-webdav 1.8.5
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.5-py3-none-win_arm64.whl (3.3 MB view details)

Uploaded Python 3 Windows ARM64

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

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

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

Uploaded Python 3 musllinux: musl 1.1+ i686

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

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

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

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-1.8.5-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.5-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.5-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.5-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.5-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.5-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.5-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.5-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 6bdd48c0d88b1a066e8cc7cd96ef38e6ea2f7f76baab1b27e3ad347b2dce10b3
MD5 b522a75d5597c91f6524a6579da7f4f7
BLAKE2b-256 23c620a234b036565a9c5a82c480998202412a530321c605e9ab9b839670d441

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.5-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 d5520e4c52de3fec5c40d1931d0776b4523b58f05f8c78ebfd4d8f08929aba5c
MD5 7cf131c973a8182953204a1619fde9c9
BLAKE2b-256 ec7dc6541d30b2907e56457a61296158d681b44d5c9c7cdf28f082fbc0b2e87c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.5-py3-none-win32.whl
Algorithm Hash digest
SHA256 a01781d37f049fb2b1cb48a281f3b3fec390649187ad7c5cb8e0f8868fc2e911
MD5 45539b3c1ac00c1850e9ccb8cdbff1a0
BLAKE2b-256 87b343c01fbfd35a07feab4ae9c0edeb36e40f805341c24dced377e9185a7b3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.5-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8ccff9f8d1d141aa971ce5b9a1b3bc0e812c6117eed637ac175a856dc0cf6c36
MD5 abd2ce6a5352fbd1eec4b4287550a5f3
BLAKE2b-256 297e81d24658772ab98f67e7f2323e1bd879cfe25619ab145b7ca58e0447b227

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.5-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 cdd24d496a1c648b1376695ba73295c8c8572b21dd03b04c9fba77c6ab09a942
MD5 82527372aa83b84d0ce2ce0a9ed2339e
BLAKE2b-256 6cc3dfe70c9a4f2f24a2a1e7b626f924aed80dcd5af16bc30ed351bd3391e5ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.5-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 e2e99a6a3ac9729bca8e8b49ce4a5192c4aeef265dd1d30e45a6d419cf64294b
MD5 ff934702629de9e0460dd1eff760b03c
BLAKE2b-256 1e215284e58c6c03f2d9092ffc7cf88546962a24446401243089998afc05925a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.5-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 cd38234b46b787be7d57c09ca8103f984500a4e33f268724e1405f0f8f766358
MD5 f943eb42ce6eb849eda0de896c5373d2
BLAKE2b-256 b625e5a5e5aceb2db18f459fcfcba6db0e94e42883933e8e56bc2623ef8f2fe8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 04f79af64f88df43c37f4e43dcffd5c21e2a7bc3b28b368c5a40bab0cbbbaa0b
MD5 d437e6300c9b00e354ec8494350783bb
BLAKE2b-256 b28b42ec4a21d860ff4cf334fe079319fd4caa107d2bbc60a665fd75d6faf91a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5977d0eb50805d5c45b17ec8bb6d4a7c6d61fa91d182c70294a35cbc3fb844e8
MD5 6fb6afe03e421917e392fd9777efbdd2
BLAKE2b-256 e48e66bf3c9a7970aea51010549ba3c3d02f586c942e54309649f5f14f0e4778

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.5-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 34de7cdf97b9a5314b93df7afbd3322234dea1546e360e66e1cd91505884c7ab
MD5 6ce41a1b9fe733ac423d406bafeeedde
BLAKE2b-256 eee458554e6738256bfdc8183e40e21c63300c4f3a3c356877ca14ca17cb138b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.5-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 3db32098b1b8b95a434480947424ea52a133f8de88382f1a926d900e11cdacdd
MD5 1bd7c2fdcd2af86c3e0c5c8409e5b57c
BLAKE2b-256 4035ef03d31136d5390c5d6cd5e9d4a8b8fd11abd0e5119ada92b32e068892bd

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.8.5-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.5-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 042dd15a2d2dfcee373a7a32937e70fd8d8fd11d11463d1cddbdae92b14b6897
MD5 965a4a89e0025d9e5a84dd30787eb909
BLAKE2b-256 aea50a50a942b0428827c71dc13d3c7996c091c608f8a4e059ab527655dd0129

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.8.5-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 c610c509725e8dd14613d236e8c900745bbbb7b38cb9f6ebe23c80fb78efbc1e
MD5 5f0fcc5ff4d905d118af0bcb4b9a2fd9
BLAKE2b-256 1a450d08befcb9157fbc30f0b7597e4bf8deb9596c9ab53eb2d4615076dd1fba

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