接着上文 折腾了一下阿里云盘 + AList + Rclone + AnimePaste 继续倒腾。
上文使用了 rclone 将 WebDAV 挂载到本地目录,而且必须在 Terminal 里手动运行一下脚本,并且 Terminal 还不能退出,所以我们现在要让他开机自动在后台启动。
更新 1:试用了一周后,体验不是很好,rclone 挂载的本地目录非常不稳定。时常出现卡死,且长时间未响应,不容易自动恢复;挂载点会因为关机不当,rclone 未正常终止等原因,导致无法被占用,无法重新挂载。搜了搜发现 Windows 原生就有相关的实现,例如 OneDrive 就在背后使用了 WebDAV。
更新 2:又试用了一段时间 Windows 原生提供的 WebDAV,依然不好用。问题有偶尔发生的开机自动挂载失败,需要手动点一下,估计原因是它挂载的时候 AList 仍未启动。其次,在挂载刚刚启动或者 AList 重启后,偶尔发生读取文件会失败一次。第三,用 VS Code 打开后,不知道为什么会给 AList 大量并发请求,容易发生各种奇怪的问题。第四,用 VS Code 编辑文本文件时,会发生缓存不一致的问题。最后,现在换用了 RaiDrive,目前似乎有观察到缓存不一致的问题,但可能 VS Code 有一部分锅,其它除了没充钱开机带了个广告外,没有问题,体验最佳。
方案一:RaiDrive#
下载,安装,在 UI 上点一点,过程比较傻瓜。
方案二:Windows 原生提供的网络驱动器映射#
在文件资源管理器中,右键 此电脑
,选择 映射网络驱动器...
。
选择你想要的驱动器,输入你的本地 / 远程 AList 的地址。
输入你的 AList 用户名,密码。
其它 WebDAV 同理。
可能出现问题#
- 可能需要在控制面板开一下 WebDAV,位于
控制面板
-程序
-启用或关闭 Windows 功能
,选项路径如下图所示。
- 如果你局域网内的 WebDAV 是 HTTP 协议,不是 HTTPS 协议,会出现 “找不到网络名” 的错误。你需要打开
注册表编辑器
,找到HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\WebClient\\Parameters
,修改键BasicAuthLevel
值为 2,即同时允许 HTTP 与 HTTPS。
方案三:rclone + nssm#
挂载脚本#
挂载脚本需要稍作修改:
- 将
rclone
替换为绝对路径; - 指定
--config
的路径(你可以通过rclone config file
查看当前的配置文件路径); - 挂载到一个单独的磁盘似乎比挂载到一个目录稳定一些?
# mount-anime.ps1
D:\bin\rclone mount "alist:/" "R:" `
--config "C:\Users\<你的系统用户名>\AppData\Roaming\rclone\rclone.conf" `
--header "Referer:https://www.aliyundrive.com/" `
--vfs-cache-mode full --vfs-read-chunk-size-limit 1G --vfs-read-chunk-size 512M `
--cache-dir "D:\.cache\rclone" --dir-cache-time 1m --buffer-size 128M `
-o UserName="<你的系统用户名>" -o GroupName="Authenticated Users"
注意:
后面的 nssm 在运行该脚本时,不是从你的当前用户启动的,所以没有 PATH 环境变量;
其次因为登录用户的缘故,mount 的目录权限有问题,命令中的最后一行参考 Mount Permission (Windows) 似乎能修复我自己遇到的权限问题。
nssm#
下载 nssm,它是一个 Windows 的 Non-Sucking Service Manager。
下载 nssm 2.24 解压后,把可执行文件复制到某个在 PATH
的目录下(这里我们统一用的是 D:\bin\
)。然后输入以下命令打开 nssm 的复古 GUI,创建一个名为 mount-anime
的服务。
nssm install mount-anime
填入以下配置:
Application - Path
:PowerShell 的绝对路径(比如C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
);Application - Startup directory
:随意;Application - Arguments
:上文创建的挂载启动脚本绝对路径;I/O
:建议将stdout / stderr
重定向到某个文件方便 DEBUG。
创建完成后,在管理员模式的 Terminal 下启动服务。
nssm start mount-anime