如果想不點擊圖片、影片等檔案即可預覽內容的話可藉由以下步驟進行安裝。
安裝
使用 ncadmin 登入網頁端,點擊進入應用程式安裝 Preview Generator
https://apps.nextcloud.com/apps/previewgenerator
接下來使用以下命令安裝 ffmpeg
(此安裝適用於 TrueNAS CORE Jail 的 Nextcloud ,點擊此連結查看適用於你操作系統的安裝方式)
1 | pkg install ffmpeg |
編輯 config/config.php
添加以下內容
1 | 'enable_previews' => true, |
preview_max_memory
: 依照可用的記憶體容量去做調整enabledPreviewProviders
: 哪些檔案可以生成預覽圖
詳細配置可參考此連結
待生成的檔案過多會等比較久,我60萬筆資料等了快三天才全部生成完成
可在 config/config.php
設置最大與覽圖生成尺寸來加快速度 (預設值為 null)
1 | 'preview_max_x' => 1024, |
配置完成後使用以下命令進行全部的預覽圖生成
(-v 為輸出的 log 詳細程度)
1 | sudo -u www /usr/local/bin/php /usr/local/www/nextcloud/occ preview:generate-all -vvv |
完成後配置 cronjob 使用者為 www ,我設置每五分鐘執行一次
1 | crontab -u www -e |
完成上述配置後圖片預覽就能正常使用了
刪除已生成的預覽圖
如果你想刪除生成的預覽文件可以使用以下的方法。
但不保證不會有資料錯誤的問題,建議有修復能力或知道自己在幹嘛的人再來執行,
記得先拍張快照,還有把 Nextcloud 切到維護模式及停用預覽圖生成的 cronjob。
進入你的 datadirectory 中,會有 appdata_<instanceid>/
的資料夾找到與你新的 Nextcloud 實例相同的 instanceid 目錄,目錄下的 preview/
就是存放預覽圖的位置,
進入的路徑則是 datadirectory/appdata_<instanceid>/
,
接下來使用此命令刪除 preview/
下的所有預覽圖
1 | rm -rf preview/* |
刪除完成後使用資料庫管理員進入 nextcloud 資料庫
1 | mysql -u dbadmin -p nextcloud |
使用此段 SQL 命令列出預覽圖的快取總數,appdata_<instanceid>
替換成與你實例相同的 instanceid
1 | SELECT COUNT(*) FROM oc_filecache WHERE path LIKE "appdata_oc538c7su4sg/preview/%"; |
刪除預覽圖的所有快取資料
1 | DELETE FROM oc_filecache WHERE path LIKE "appdata_oc538c7su4sg/preview/%"; |
1 | dbadmin@localhost [nextcloud]> SELECT COUNT(*) FROM oc_filecache WHERE path LIKE "appdata_oc538c7su4sg/preview/%"; |
如果不會操作資料庫也可使用以下命令達到相同效果 (也較安全)
刪除 preview/
下的內容後執行此命令,
此命令將檢查 appdata 目錄並確保檔案快取與實際儲存上的檔案一致 (刪除預覽圖的快取資料)
1 | occ files:scan-app-data |
1 | root@nextcloud27:/usr/local/www/nextcloud # occ files:scan-app-data |
完成後即可重新設置預覽圖生成器,
關閉維護模式及啟用預覽圖生成的 cronjob 即可再次使用。
如果對設定有甚麼問題可以參考他們的 Github
https://github.com/nextcloud/previewgenerator