略過內容 略過搜尋

Active Storage 預覽

部分非圖片 blob 可以預覽:也就是說,它們可以顯示為圖片。視訊 blob 可以透過擷取其第一幀預覽,而 PDF blob 可以透過擷取其第一頁預覽。

預覽程式從 blob 擷取預覽圖片。Active Storage 提供視訊和 PDF 的預覽程式。ActiveStorage::Previewer::VideoPreviewer 用於視訊,而 ActiveStorage::Previewer::PopplerPDFPreviewerActiveStorage::Previewer::MuPDFPreviewer 用於 PDF。建立自訂預覽程式的方式是,繼承 ActiveStorage::Previewer 並實作必要的函式。參閱 ActiveStorage::Previewer 文件以進一步瞭解預覽程式需要的內容。

若要為 blob 選擇預覽程式,Active Storage 會依序對每個已註冊的預覽程式呼叫 accept?。它使用第一個在給定 blob 時 accept? 回傳 true 的預覽程式。在 Rails 應用程式中,透過在初始化程式中設定 Rails.application.config.active_storage.previewers 來新增或移除預覽程式

Rails.application.config.active_storage.previewers
# => [ ActiveStorage::Previewer::PopplerPDFPreviewer, ActiveStorage::Previewer::MuPDFPreviewer, ActiveStorage::Previewer::VideoPreviewer ]

# Add a custom previewer for Microsoft Office documents:
Rails.application.config.active_storage.previewers << DOCXPreviewer
# => [ ActiveStorage::Previewer::PopplerPDFPreviewer, ActiveStorage::Previewer::MuPDFPreviewer, ActiveStorage::Previewer::VideoPreviewer, DOCXPreviewer ]

在 Rails 應用程式之外,請改為修改 ActiveStorage.previewers

內建預覽程式依賴於第三方系統函式庫。特別是,內建的視訊預覽程式需要 FFmpeg。提供兩個 PDF 預覽程式:一個需要 Poppler,另一個則需要 muPDF (1.8 版以上)。若要預覽 PDF,請安裝 Poppler 或 muPDF。

這些函式庫並未由 Rails 提供。您必須自行安裝才能使用內建預覽程式。在安裝和使用第三方軟體之前,請務必瞭解這樣做的授權意涵。

名稱空間