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