Help me to become a full-time open-source developer by sponsoring me on GitHub
阿里雲盤WebDAV 服務,主要使用場景為配合支持WebDAV 協議的客戶端App 如Infuse、nPlayer 等實現在電視上直接觀看雲盤視頻內容, 支持客戶端App 直接從阿里雲盤獲取文件播放而不經過運行本應用的服務器中轉, 支持上傳文件,但受限於WebDAV 協議不支持文件秒傳。
請注意:V2 版本基於阿里雲盤開放平台接口實現,不再支持阿里雲盤Web 和App 版本獲取的refresh token。由於本項目作者不再使用梅林固件,V2 版本不再免費支持Koolshare 梅林固件系統,如有需要請考慮付費支持。
如果項目對你有幫助,請考慮捐贈支持項目持續維護。 也可以考慮加入aliyundrive-webdav 知識星球獲取諮詢和技術支持服務。
Note
本項目作者沒有上傳需求, 故上傳文件功能測試不全面且沒有持續迭代計劃.
可以從GitHub Releases 頁面下載預先構建的二進制包, 也可以使用pip 從PyPI 下載:
pip install aliyundrive-webdav如果系統支持Snapcraft 比如Ubuntu、Debian 等,也可以使用snap 安裝:
sudo snap install aliyundrive-webdavGitHub Releases 中有預編譯的ipk 文件, 目前提供了aarch64/arm/mipsel/x86_64/i686 等架構的版本,可以下載後使用opkg 安裝,以nanopi r4s 為例:
wget https://github.com/messense/aliyundrive-webdav/releases/download/v2.3.3/aliyundrive-webdav_2.3.3-1_aarch64_generic.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v2.3.3/luci-app-aliyundrive-webdav_2.3.3_all.ipk
wget https://github.com/messense/aliyundrive-webdav/releases/download/v2.3.3/luci-i18n-aliyundrive-webdav-zh-cn_2.3.3-1_all.ipk
opkg install aliyundrive-webdav_2.3.3-1_aarch64_generic.ipk
opkg install luci-app-aliyundrive-webdav_2.3.3_all.ipk
opkg install luci-i18n-aliyundrive-webdav-zh-cn_2.3.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命令查詢。

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_token , WEBDAV_AUTH_USER和WEBDAV_AUTH_PASSWORD為連接WebDAV 服務的用戶名和密碼。
qnap-aliyunpan-webdav by @iranee.
管理員登陸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 時推薦使用Nextcloud WebDAV 模式,可以支持sha1 checksums. 另外需要配合--no-update-modtime參數,否則rclone 為了更新文件修改時間還是會強制重新上傳。
舉個例子:
rclone --no-update-modtime copy abc.pdf aliyundrive-nc://docs/aliyundrive-webdav qr login掃碼授權後會輸出refresh token 
$ aliyundrive-webdav --help
WebDAV server for AliyunDrive
Usage: aliyundrive-webdav [OPTIONS]
aliyundrive-webdav < COMMAND >
Commands:
qr Scan QRCode
help Print this message or the help of the given subcommand(s)
Options:
--host < HOST >
Listen host
[env: HOST = ]
[default: 0.0.0.0]
-p, --port < PORT >
Listen port
[env: PORT = ]
[default: 8080]
--client-id < CLIENT_ID >
Aliyun drive client_id
[env: CLIENT_ID = ]
--client-secret < CLIENT_SECRET >
Aliyun drive client_secret
[env: CLIENT_SECRET = ]
--drive-type < DRIVE_TYPE >
Aliyun drive type
[env: DRIVE_TYPE = ]
Possible values:
- resource: Resource drive
- backup: Backup drive
- default: Default drive
-r, --refresh-token < REFRESH_TOKEN >
Aliyun drive refresh token
[env: REFRESH_TOKEN = ]
-U, --auth-user < AUTH_USER >
WebDAV authentication username
[env: WEBDAV_AUTH_USER = ]
-W, --auth-password < AUTH_PASSWORD >
WebDAV authentication password
[env: WEBDAV_AUTH_PASSWORD = ]
-I, --auto-index
Automatically generate index.html
-S, --read-buffer-size < READ_BUFFER_SIZE >
Read/download buffer size in bytes, defaults to 10MB
[default: 10485760]
--upload-buffer-size < UPLOAD_BUFFER_SIZE >
Upload buffer size in bytes, defaults to 16MB
[default: 16777216]
--cache-size < CACHE_SIZE >
Directory entries cache size
[default: 1000]
--cache-ttl < CACHE_TTL >
Directory entries cache expiration time in seconds
[default: 600]
--root < ROOT >
Root directory path
[env: WEBDAV_ROOT = ]
[default: /]
-w, --workdir < WORKDIR >
Working directory, refresh_token will be stored in there if specified
--no-trash
Delete file permanently instead of trashing it
--read-only
Enable read only mode
--tls-cert < TLS_CERT >
TLS certificate file path
[env: TLS_CERT = ]
--tls-key < TLS_KEY >
TLS private key file path
[env: TLS_KEY = ]
--strip-prefix < STRIP_PREFIX >
Prefix to be stripped off when handling request
[env: WEBDAV_STRIP_PREFIX = ]
--debug
Enable debug log
--no-self-upgrade
Disable self auto upgrade
--skip-upload-same-size
Skip uploading same size file
--prefer-http-download
Prefer downloading using HTTP protocol
--redirect
Enable 302 redirect when possible
-h, --help
Print help (see a summary with ' -h ' )
-V, --version
Print versionNote
注意:TLS/HTTPS 暫不支持MIPS 架構。
Note
注意:啟用
--skip-upload-same-size選項雖然能加速上傳但可能會導致修改過的同樣大小的文件不會被上傳
This work is released under the MIT license. A copy of the license is provided in the LICENSE file.