我有一个通过 snap 安装的 Nextcloud 服务器(Github 页面)到目前为止它运行得相当好,但现在我想开始使用 Nextcloud 的工作流功能在创建新的 mkv 文件时运行脚本(执行 ffmpeg 并将文件从 mkv 容器转换为 mp4 的非常简单的脚本)。
然而,我对 snap 的了解到此结束。snap 无权访问我创建的脚本,也没有权限执行 ffmpeg。有没有办法让 snap 获得运行 ffmpeg 和我的脚本所需的访问权限?
答案1
根据每个人的评论。听起来,为了授予 snap 执行 ffmpeg 和我的脚本的权限,我要么需要 A) 按照 nextcloud-snap 文档将我的实现重做为“可写 snap”,要么 B) 完全停止使用 snap(我不受 snap 的约束,但目前我也不想重新安装我的 nextcloud)。所以我不能通过 nextcloud 的工作流功能使用我的脚本。不过,我确实找到了一种解决方法。我的脚本只需要在我存储的 nextcloud 数据上运行 ffmpeg 的权限,而 snap做允许我指定一个外部数据目录,用于存储我的 nextcloud 数据。因此我执行了以下操作
我将数据复制到外部目录,指向 snap 以使用该数据目录这些说明
设置一个 incron 作业,当通过 nextcloud 上传新文件时执行我的脚本。我的 incrontab 条目如下所示
/mnt/nextcloud/data/directory/ IN_ATTRIB ~/bin/my_script.sh $@$#
作为脚本的最后一步,我指示 nextcloud 通过运行来扫描目标目录中的新文件
/snap/bin/nextcloud.occ files:scan --path="username/videos/converted
(注意:路径相对于 nextcloud 用户名)