方法
实例公共方法
analyze() 链接
使用相关的分析器从 blob associated with this blob 中提取并存储元数据。Active Storage 附带了内置的图片和视频分析器。有关它们提取的特定属性以及它们所需的第三方库的信息,请参阅 ActiveStorage::Analyzer::ImageAnalyzer 和 ActiveStorage::Analyzer::VideoAnalyzer。
为了选择 blob 的分析器,Active Storage 按顺序在每个已注册的分析器上调用 accept?。它使用第一个 accept? 返回 true 的分析器来处理该 blob。如果没有已注册的分析器接受该 blob,则不会从中提取任何元数据。
在 Rails 应用程序中,请在初始化程序中通过操作 Rails.application.config.active_storage.analyzers 来添加或删除分析器。
# Add a custom analyzer for Microsoft Office documents: Rails.application.config.active_storage.analyzers.append DOCXAnalyzer # Remove the built-in video analyzer: Rails.application.config.active_storage.analyzers.delete ActiveStorage::Analyzer::VideoAnalyzer
在 Rails 应用程序之外,请改用 ActiveStorage.analyzers。
您通常不需要在 Rails 应用程序中调用此方法。新 blob 在首次附加时会自动异步分析,通过 analyze_later。
来源: 显示 | 在 GitHub 上
# File activestorage/app/models/active_storage/blob/analyzable.rb, line 29 def analyze update! metadata: metadata.merge(extract_metadata_via_analyzer) end
analyze_later() 链接
排队等待一个 ActiveStorage::AnalyzeJob,它会调用 analyze,或者根据分析器类的配置内联调用 analyze。
此方法在 blob 首次附加时自动为其调用。您可以调用此方法以再次分析 blob(例如,如果您添加了新的分析器或修改了现有的分析器)。
来源: 显示 | 在 GitHub 上
# File activestorage/app/models/active_storage/blob/analyzable.rb, line 37 def analyze_later if analyzer_class.analyze_later? ActiveStorage::AnalyzeJob.perform_later(self) else analyze end end
analyzed?() 链接
如果 blob 已被分析,则返回 true。
来源: 显示 | 在 GitHub 上
# File activestorage/app/models/active_storage/blob/analyzable.rb, line 46 def analyzed? analyzed end