AnimePaste 计划重构:
- 删除原有的上传到 OSS,只保留文件目录,同步工作交给各种 WebDAV;
- 删除原有手搓的媒体库,并更好地兼容 Jellyfin 等媒体库软件。
所以,本文预先调研并尝试一下 WebDAV 同步的方案,并做一些记录,方便之后自己复现。
本地#
AList#
使用 AList 统一管理各种网盘,并暴露成 WebDAV 的形式。
比较懒,直接下载了它的桌面版。在它的 Web UI 里把阿里云盘挂载到了 AList 的目录 /alidriver
。
Rclone#
配置文件 rclone config file
。
[alist]
type = webdav
url = http://127.0.0.1:5244/dav/
user = admin
pass = xxxyyyzzz
将 AList 的阿里云盘挂载点 /alidriver
内的文件夹 /alidriver/anime
,挂载到本地目录 D:\.mount\anime
,缓存目录 D:\.cache\rclone
。配置挂载的开机自动在后台启动,见 Windows 上配置 rclone 开机自动启动。
# mount-anime.ps1
rclone mount alist:/alidriver/anime "D:\.mount\anime" `
--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
已隐藏密码。
AnimePaste#
见 AnimePaste,在配置文件里改一下本地的目录到 D:\.mount\anime
。
服务器#
aliyundrive-webdav#
实际环境中已弃用此方案,改为部署 AList,见 在服务器用 WebDAV 部署 Jellyfin。
本方案仅用于初期的思路验证。
使用 aliyundrive-webdav 在服务器上把阿里云盘作为 WebDAV 暴露到公网上,并将文件读取请求转发到阿里云盘上,不走服务器的带宽中转。
#!/usr/bin/bash
docker stop aliyundrive-webdav > /dev/null
docker rm aliyundrive-webdav > /dev/null
docker run -d --name=aliyundrive-webdav --restart=unless-stopped -p 8080:8080 \
-v /etc/aliyundrive-webdav/:/etc/aliyundrive-webdav/ \
-e REFRESH_TOKEN='ooooooooo' \
-e WEBDAV_AUTH_USER=aaabbbccc \
-e WEBDAV_AUTH_PASSWORD=xxxyyyzzz \
messense/aliyundrive-webdav /usr/bin/aliyundrive-webdav --auto-index --workdir /etc/aliyundrive-webdav --redirect
已隐藏密码。
最后#
- 本地用 AnimePaste 自动下载新番
- AList 和 Rclone 将文件同步到阿里云盘上
- 服务器用 aliyundrive-webdav 暴露到公网