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 项目。

如果项目对你有帮助,请考虑捐赠支持项目持续维护。

特别赞助

安装

可以从 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.5.0/aliyundrive-webdav_1.5.0-1_aarch64_generic.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v1.5.0/luci-app-aliyundrive-webdav_1.5.0_all.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v1.5.0/luci-i18n-aliyundrive-webdav-zh-cn_1.5.0-1_all.ipk
opkg install aliyundrive-webdav_1.5.0-1_aarch64_generic.ipk
opkg install luci-app-aliyundrive-webdav_1.5.0_all.ipk
opkg install luci-i18n-aliyundrive-webdav-zh-cn_1.5.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.5.0

USAGE:
    aliyundrive-webdav [OPTIONS]

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-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]
        --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=]
    -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=]

注意:TLS/HTTPS 暂不支持 MIPS 架构。

获取 refresh_token

  • 自动获取: 登录阿里云盘后,控制台粘贴 JSON.parse(localStorage.token).refresh_token

  • 手动获取: 登录阿里云盘后,可以在开发者工具 -> Application -> Local Storage 中的 token 字段中找到。
    注意:不是复制整段 JSON 值,而是 JSON 里 refresh_token 字段的值,如下图所示红色部分: refresh token

  • 使用移动端 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

This version

1.5.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aliyundrive_webdav-1.5.0.tar.gz (644.5 kB view details)

Uploaded Source

Built Distributions

aliyundrive_webdav-1.5.0-py3-none-musllinux_1_1_x86_64.whl (3.1 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

aliyundrive_webdav-1.5.0-py3-none-musllinux_1_1_i686.whl (3.0 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ i686

aliyundrive_webdav-1.5.0-py3-none-musllinux_1_1_armv7l.whl (2.6 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

aliyundrive_webdav-1.5.0-py3-none-musllinux_1_1_aarch64.whl (2.9 MB view details)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

aliyundrive_webdav-1.5.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.6 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARMv7l

aliyundrive_webdav-1.5.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.9 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

aliyundrive_webdav-1.5.0-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (3.1 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ x86-64

aliyundrive_webdav-1.5.0-py3-none-manylinux_2_5_i686.manylinux1_i686.whl (3.0 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ i686

aliyundrive_webdav-1.5.0-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (5.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.5.0-py3-none-macosx_10_7_x86_64.whl (2.7 MB view details)

Uploaded Python 3 macOS 10.7+ x86-64

File details

Details for the file aliyundrive_webdav-1.5.0.tar.gz.

File metadata

  • Download URL: aliyundrive_webdav-1.5.0.tar.gz
  • Upload date:
  • Size: 644.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for aliyundrive_webdav-1.5.0.tar.gz
Algorithm Hash digest
SHA256 aa99726e5032eabcb48226e38d5765aa4ed58ca5968343a46cf9e727718eb4cf
MD5 9431570db841c920d11ea9363fccfcca
BLAKE2b-256 77fb86d697a6d402ace251a6878951945b995c50f63cbcf0339e8bc1bc540601

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.5.0-py3-none-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 308da72adfbeba7b11584b51dc2ff5fdf2aeac628aae257002fa7a44f973f973
MD5 4d57d49eb35cdbed9ca025f1afe067ff
BLAKE2b-256 2ee0a8e5fee6a57796904584fa7663eaf49ce88bcfef8749ec2f9842d9609e03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.5.0-py3-none-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 e0e89663601cae8106e98b72244234245d767d5204850c29a2db498063a0bbb0
MD5 7de30ac0fe8f2320a2e1ced3aa24bb57
BLAKE2b-256 d2ca4ddf4cfb567f652ca8c885b7d7fe6e81582a2e7b96c6ea19fa457e5cb1ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.5.0-py3-none-musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 45f0b7ac7654019edb286124b8a2274e3e5dc77b8dbd62bc018377743196cc98
MD5 7e599fe0cbb764c19253c4fed99cd2af
BLAKE2b-256 4b01c9bfd3261e97afd76c449b7e115da099815e02eaca24d815ed7c5ada3cf2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.5.0-py3-none-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 04561613c3873dcd02056176d3e67bcf901d90eb70f060314c9b59d30c7b5167
MD5 07d8cfc3eea40d748e7d87c2408d0306
BLAKE2b-256 b67a19abb5b39ecd086f0f6cbbd004d2eb51dbce232b50bc9987db76cd4bce3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.5.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5df92fb019c5b8b7e5e222b9c911a1c6ac21cd14c2cf7074a7a1bc15d771181d
MD5 17b3ee16efa657f85b65f80faf536460
BLAKE2b-256 4d1fba5a9c610c8aeff2341b16eb1412aa0d4845f30147a389c91e8ef66bf384

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.5.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4d088c4440e30d3b6db9bdce4b2e7aca61180319f974e20dcdd8d8d7037ded0b
MD5 916e481f1feadc06c406696aeebf93bd
BLAKE2b-256 e8992369920571638bd3acdb05491b5fbbff70a3990f9cfadd2d7a515b8c6886

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.5.0-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 9703fac46ab4afbb85e86e203e4bfc1ad666f3a6b29282ab3a1cf77fa1a8ce51
MD5 ef3a979738cd330f179fc7bfef31a3e1
BLAKE2b-256 1730b858e31cceeebd859cdf37896c28a61e7be8b3a6eda09908fb423b5e913f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.5.0-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 62f2333afe1831f122f3c2706bf7298f3eb3350677dad20570d5c08b0485ea8c
MD5 51c84a3ff74532ee29b62e5415eba7d2
BLAKE2b-256 9d204871467bd2a42c8faa5635b08ebeb7743372546abb7800ae710a96169c43

See more details on using hashes here.

File details

Details for the file aliyundrive_webdav-1.5.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.5.0-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f17607a1771f29a72eb1d576f2f8f9d31e1e56ba854685a9a378acd4c4ec30de
MD5 d42688aa6b6d921a5f75104fea9a5047
BLAKE2b-256 4d54e1578d36eec76c19f1daadc966f69e1d8ddf115461b175553ee6af5c41a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aliyundrive_webdav-1.5.0-py3-none-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 b34dd9f4646334dd1d113bf2afbe2931e475214eba0f1974d5ab738d43d28cfb
MD5 d9db796f53ed6a7c64e7d23947f872e5
BLAKE2b-256 83e8a191ae00658e240d26d1331e4300c1331f9f656c9995a3c9b9fd67524aa3

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