跳至内容 跳至搜索

Active Storage 分析器

这是一个分析器的抽象基类,用于从 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