Alist+emby+Nas+rclone笔记

周五下班路上就感觉越来越不对劲,如果没有目标,那和咸鱼有什么区别,周末继续研究客户端。

🤗 总结

先根据自己几种需求总结情况

  • 网盘下载:最合适我个人的方案,因为我本地网络不稳定,看4k电视剧还行,看4k电影很卡。而且,我非常在意拖动进度条后的加载速度。

  • alist挂网盘:适合随时查看网盘内容,比如不在同一局域网,如果本地网络好的情况下,alist搜索想要看的电影,用本地客户端打开即可。

  • alist+infuseinfuse挂载alist webdav,扫描网盘内容,生成海报墙。优点是有海报墙,有观看记录,多端观看进度同步。缺点就是本地网络和无法自定义海报墙。

  • alist+rclone+emby+infuse:正在摸索中…

开整

有一些纪录片或者一些本地视频,无法生成海报墙,还有一些老电影无法搜刮,被识别成其他。

onelist:想试试他的刮削能力,看了下源码是Go写的,也算熟悉,直接fork、clone、run起来,数据库用的MySQL,搜刮视频的时候报错,大概意思是MySQL关联外键引起的,就没再折腾下去,更主的原因,我不想通过onelist的海报墙看视频。周六给我最大的快乐就是,原来NAS还能这么玩:挂载NAS目录到Mac下,在Mac下完成项目搭建,本机有完整的开发环境。调试完成后,build直接在NAS环境运行。

emby:搜了一些关于emby``jellyfin``plex的测评,最后选了emby开心版,同理还是docker-compose安装。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
version: '3.3'
services:
 embyserver:
   privileged: true
   image: 'swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/amilys/embyserver:latest'
   network_mode: host
   container_name: emby
   volumes:
     - '/volume1/docker/emby/config:/config'
     - '/volume1/docker/emby/data:/data'
   environment:
     - PUID=1027
     - PGID=100
     - UMASK=000
     - TZ=Asia/Shanghai
   devices:
     - '/dev/dri:/dev/dri'
   restart: unless-stopped

安装完emby又不会了,发现无法直接添加外部资源库。经过一番查询,需要把alist通过webdav方式挂载到本地目录。最终选择通过rclone挂载到本地。

rclone挂载alist

安装:

复制粘贴rclone官网命令直接运行安装完成.

sudo -v ; curl https://rclone.org/install.sh | sudo bash

配置:

这是默认配置路径:/root/.config/rclone/rclone.conf添加如下内容

1
2
3
4
5
6
[alist] # 这个挂载的名字,自己按需求修改
type = webdav # 挂载方式,无需修改
url = http://192.168.3.7:5244/dav # 换成你的 alist dav 地址
vendor = rclone # 服务器类型
user = admin # alist dav 的用户名
pass = MpDJxLXCbAhgQ9iUpSn3a_U0twVfT69xtw # alist dav 的密码,需要通过下面加密

rclone obscure 你的alist dav密码,加密后的字符串写入上面pass后面

一切都是那么丝滑,就这???果然,不出意外的话意外发生了,出了一些奇奇怪怪的问题。

启动: (参考下面分别挂载吧)

目录我直接挂载到emby映射目录,方便了很多,这也是为啥rclone没考虑docker安装。

rclone mount alist:/ /volume1/docker/emby/data --use-mmap --umask 000 --no-check-certificate --allow-other --allow-non-empty --dir-cache-time 24h --cache-dir=/volume1/docker/webdav/cache --header "Referer:" --vfs-cache-mode full --buffer-size 512M --vfs-read-chunk-size 64M --vfs-read-chunk-size-limit 1G --vfs-cache-max-size 10G --daemon

报错:

1
2
3
4
5
6
7
报错:
2024/10/28 12:02:17 ERROR : Daemon timed out. Failed to terminate daemon pid 6203: os: process already finished
2024/10/28 12:02:17 CRITICAL: Fatal error: daemon exited with error code 1

 --daemon 去掉后运行,会报其他错误。
报错:
2024/10/28 12:05:58 CRITICAL: Fatal error: failed to mount FUSE fs: fusermount: exec: "fusermount3": executable file not found in $PATH

新的报错好理解。缺少fusermount3命令,把fusermount软连接到fusermount3最后挂载成功。

取消挂载:fusermount -qzu /volume1/docker/emby/data


分别挂载云盘命令,提前在新建要挂载到的本地文件。( __ 打算以后本地的文件不通过alist webdav方式挂载了。emby要用本地文件库,就单独给emby容器做文件映射;alist要挂载本地文件就给alist容器做文件映射,这他么叫 __ __ 解耦 __ __ __ )

1
2
3
4
5
# 挂载 115网盘 到 115
rclone mount alist:/115网盘 /volume1/docker/emby/data/115 --use-mmap --umask 000 --network-mode --no-check-certificate --allow-other --allow-non-empty --dir-cache-time 4h --cache-dir=/volume1/docker/webdav/115 --header "Referer: https://115.com/" --vfs-cache-mode full --buffer-size 512M --vfs-read-chunk-size 64M --vfs-read-chunk-size-limit 1G --vfs-cache-max-size 4G --daemon

# 挂载 夸克 到 夸克
rclone mount alist:/夸克 /volume1/docker/emby/data/夸克 --use-mmap --umask 000 --network-mode --no-check-certificate --allow-other --allow-non-empty --dir-cache-time 4h --cache-dir=/volume1/docker/webdav/quark --header "Referer: https://b.quark.cn/" --vfs-cache-mode full --buffer-size 512M --vfs-read-chunk-size 64M --vfs-read-chunk-size-limit 1G --vfs-cache-max-size 4G --daemon

相关参数解释

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
rclone mount alist: /volume1/docker/emby/data:将 alist 远程存储挂载到本地路径 /volume1/docker/emby/data。
--use-mmap:启用内存映射文件访问方式,可能会提高性能。
--umask 000:设置权限掩码为 000,使得挂载目录的所有文件和文件夹对所有用户都可读写(等同于 777 权限)。
--no-check-certificate:不验证 SSL/TLS 证书,用于跳过证书检查。
--allow-other:允许非 rclone 启动用户访问挂载的目录。
--allow-non-empty:允许在非空目录上挂载,这在该目录中已有文件的情况下使用,但需要谨慎使用,以免覆盖或混淆已有数据。
--dir-cache-time 24h:设置目录缓存时间为 24 小时,以减少频繁的目录读取操作,提高性能。
--cache-dir=/volume1/docker/webdav/cache:指定本地缓存目录路径为 /volume1/docker/webdav/cache。
--header "Referer:":设置 HTTP 请求头中的 Referer 为空,可能用于绕过某些限制。
--vfs-cache-mode full:将 VFS 缓存模式设置为 full,即文件在本地完整缓存,支持随机读写等复杂文件操作。
--buffer-size 512M:设置文件读写缓冲区大小为 512 MB,增加缓冲区可以提升吞吐量。
--vfs-read-chunk-size 64M:设置初始读取块大小为 64 MB,可以更高效地处理小文件读取请求。
--vfs-read-chunk-size-limit 1G:设置读取块大小的最大值为 1 GB,文件读取块在必要时会逐步增加到该限制。
--vfs-cache-max-size 10G:将 VFS 缓存的最大大小设置为 10 GB,以避免缓存占用过多存储空间。
--daemon:将挂载命令以守护进程的方式运行,使其在后台持续运行。

alist批量命名有点意思