alist支持的网盘很多,也支持webdav,不过也有很多问题,就算是挂载本地硬盘,挂载webdav也不能用来同步joplin,阅读app,就更不用提阿里云盘了。也试过一些命令行版支持webdav的阿里云盘,也是和alist一样的毛病。
所以找打了这个aliyundrive-webdav,可能是阿里云盘最好用的webdav服务了,可以用于Joplin等等支持webdav的应用同步数据。
https://github.com/messense/aliyundrive-webdav
1、安装比较简单,可以使用pip直接安装:
pip install aliyundrive-webdav
2、运行:
#运行 aliyundrive-webdav --port 2345 --auth-user admin --auth-password admin --refresh-token xxxxxxxx #--port端口 ,--auth-user 设置用户 --auth-password设置密码 --refresh-token 网页或者app抓,如果不会可以省略,可以扫描自动获取。 aliyundrive-webdav --port 2345 --auth-user admin --auth-password admin
如果提示root报错,跑不动的情况,可能是env环境的问题,可以参考解决:https://bbs.zsxwz.com/thread-5241.htm
3、命令行参数:
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-redirect
Disable 302 redirect when using app refresh token
--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]
--prefer-http-download
Prefer downloading using HTTP protocol
-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
4、如果想挂载到windows,想要开机自启,个人推荐rclone。
rclone:https://rclone.org/downloads/
还需要安装winfsp :https://winfsp.dev/rel/
#配置 rclone config
rclone配置教程太多了,就不说了,为了避免重复上传文件,使用 rclone 时推荐使用 Nextcloud WebDAV 模式,可以支持 sha1 checksums. 另外需要配合 --no-update-modtime 参数,否则 rclone 为了更新文件修改时间还是会强制重新上传。
5、rclone挂载:
rclone.exe mount aliyun:/ W: --vfs-cache-mode writes --cache-dir E:\aliyun --network-mode --no-update-modtime --no-check-certificate --default-permissions --header "Referer:https://www.aliyundrive.com/" --vfs-read-chunk-size-limit 4G --vfs-read-chunk-size 64M --dir-cache-time 12h --buffer-size 32M --ignore-checksum --no-gzip-encoding --copy-links #根据自己的情况修改,aliyun,rclone挂载名称,W: ,映射路径,--cache-dir,缓存路径
如果需要开机自启,就将上面的命令行保存成rclone.bat,然后创建,开机任务,设置条件,连接网络时启动。
bat开机自启有一个小黑框,可以在rclone.bat相同目录下创建一个vbs,rclone.vbs,设置计划任务,选择脚本,就选择这个文件即可。
Set ws = CreateObject("Wscript.Shell")
WScript.Sleep 3000
ws.run("rclone.bat"),0
