最近在飞牛 NAS(FnOS)上通过 Docker 部署 PicHome 图片管理系统,用来管理 Eagle 素材库。之前分享过 飞牛FnOS部署PicHome无法同步大容量Eagle库 以为就此结束,没成想还有续篇。
Pichome 实际使用过程中依然存在问题。特别关于权限和文件下载问题。如果你也遇到导入库不更新、PDF 无法下载等情况,希望这篇文章能帮到你。

1. 为什么外部导入素材后,PicHome 死活扫描不出来?
在使用过程中,我发现一个很奇怪现象:当我通过电脑把新素材库或图片拷贝到 NAS 挂载目录后,回到 PicHome 后台点击更新,扫不出来,数据库里完全不显示新内容。
可文件已经上传相应库,我用电脑 Eagle 引用这个库能够显示,但服务器 docker 版 pichome 更新后却无法显示。
经过排查,发现这是典型 Linux 权限问题。解决办法是在 SSH 终端运行以下两条命令:
# 注意:请将 /vol1/1000/library 替换为你自己的真实挂载路径
# 1. 确保所有者是 Docker 用户 (UID 82)
sudo chown -R 82:82 /vol1/1000/library
# 2. 确保权限是 775 (拆除限高杆,允许同组读写)
sudo chmod -R 775 /vol1/1000/library
注意这两条命令指向路径是你挂载的 pichome 文件夹,如果你有点懵,别着急复制粘贴,先回上一篇看看。以及拷贝之前文章和这篇文章给 AI 工具,让它辅助你完成,并给你解释,为什么这么做。否则你瞎几把乱搞,别到时把容器弄坏。
之所以出现这个数据同步却不显示的问题,我斗胆猜测一二。如果你使用服务器上的 pichome 挂载文件夹,并使用 eagle 引用服务器上的数据库来做平时设计素材管理。
这里就涉及当你往 eagle 添加照片或者视频时,从你的电脑往服务器里上传。而你电脑上的照片或视频自带只读写入等属性,上传服务器后,这些文件属性一并带过去了(俗称胎里毒),即默认新加入的素材不跟服务器姓。
因此使用上述两条命令,就是让你把这些文件全部解锁一次,将新加入的素材文件解除原来属性,更新为服务器完全控制。类似于过户手续。
因此,如果新添加素材,哪怕一张图片,也需要做一次解锁动作,否则虽能添加,外部能访问,但 Pichome 更新后却不显示。
2. 只有笨办法了?教你用一条指令解决战斗
我建议每周将电脑数据同步到服务器之后,做一次解锁命令,然后再更新数据库。
如何保证电脑和数据库文件一致?这个很好解决,使用FreeFileSync。
A 电脑 → B 服务器,会比对两个数据库差异,只同步新增部分。
如果你的数据库几百 G,那么同步软件很有必要,否则复制粘贴,全扫描,太慢。
但每次输入两行长长的代码实在太麻烦。好在我们可以利用 Linux 别名功能,自定义一个短指令来自动完成这两步操作。
具体操作步骤如下:
首先,通过 SSH 连接到你的飞牛 NAS。
输入以下命令,将别名写入配置文件(注意将下面的路径替换为你真实的素材库挂载路径):
echo "alias fixpichome='sudo chown -R 82:82 /vol1/1000/library && sudo chmod -R 775 /vol1/1000/library'" >> ~/.bashrc
接着,让配置立即生效:
source ~/.bashrc
搞定!以后每次你通过电脑往 NAS 里拷贝了新素材,只需要打开 SSH,输入这行短命令即可:
fixpichome
输入后敲回车,系统就会自动在后台帮你把所有权限和归属修正好,然后你再去 PicHome 后台点击同步,就能秒更新。
我不知道你能不能理解这一步。就是电脑打开终端连接服务器后,只要敲「fixpichome」即可,相当于这个别名同时运行了上述两条命令。
没有办法的办法也是一种办法,虽然我觉得每次更新数据库之前还要打开终端敲这个别名,也是一种麻烦,但没有找到更好办法之前,只能如此。
3. PDF 文件点击无法下载的临时解决方案
在使用过程中还遇到一个新的问题。当库里有 PDF 文件时,点击详情页面的立刻下载按钮,浏览器没提示下载失败。
经过测试,发现这可能是因为浏览器安全策略拦截了非 HTTPS 的下载请求,或者是前端代码的兼容性问题。
解决办法非常简单,不要死磕那个大的下载按钮。请注意看文件预览区域的有一个下载的小图标。

直接点击这个不起眼的小图标,浏览器就能顺利完成下载。
希望这些经验能帮你少走弯路,愉快地管理你的素材库。
目前尚未解决
⚠️ Pichome 视频素材可下载却不可预览播放。