跳至内容 跳至搜索

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?。它使用第一个 accept? 返回 true(在给定 Blob 时)的预览器。在 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 提供的。您必须自己安装它们才能使用内置预览器。在安装和使用第三方软件之前,请确保您了解这样做带来的许可证影响。

命名空间