跳至内容 跳至搜索

Active Storage Analyzer

这是一个用于分析器的抽象基类,它从 Blob 中提取元数据。参见 ActiveStorage::Analyzer::VideoAnalyzer 以了解具体子类的示例。

命名空间
方法
A
D
I
L
M
N
T

属性

[R] blob

类公共方法

accept?(blob)

在具体的子类中实现此方法。当给定分析器可以从中提取元数据的 Blob 时,让它返回 true。

# File activestorage/lib/active_storage/analyzer.rb, line 13
def self.accept?(blob)
  false
end

analyze_later?()

在具体的子类中实现此方法。它将确定 Blob 分析应该在作业中完成还是内联执行。默认情况下,分析会在作业中排队。

# File activestorage/lib/active_storage/analyzer.rb, line 19
def self.analyze_later?
  true
end

new(blob)

# File activestorage/lib/active_storage/analyzer.rb, line 23
def initialize(blob)
  @blob = blob
end

实例公共方法

metadata()

在具体的子类中覆盖此方法。让它返回一个 Hash 的元数据。

# File activestorage/lib/active_storage/analyzer.rb, line 28
def metadata
  raise NotImplementedError
end

实例私有方法

download_blob_to_tempfile(&block)

将 Blob 下载到磁盘上的临时文件。生成临时文件。

# File activestorage/lib/active_storage/analyzer.rb, line 34
def download_blob_to_tempfile(&block) # :doc:
  blob.open tmpdir: tmpdir, &block
end

instrument(analyzer, &block)

# File activestorage/lib/active_storage/analyzer.rb, line 46
def instrument(analyzer, &block) # :doc:
  ActiveSupport::Notifications.instrument("analyze.active_storage", analyzer: analyzer, &block)
end

logger()

# File activestorage/lib/active_storage/analyzer.rb, line 38
def logger # :doc:
  ActiveStorage.logger
end

tmpdir()

# File activestorage/lib/active_storage/analyzer.rb, line 42
def tmpdir # :doc:
  Dir.tmpdir
end