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 暴露到公網