10. ActiveStorage::Analyzer Powered by Rabbit 3.0.0
実装例
class ExtractTextAnalyzer < ActiveStorage::Analyzer
# 画像以外が対象
def self.accept?(blob)
!blob.image?
end
def metadata
read_file do |file|
{ content_text: extract_text_from_file(file) }
end
end
private
# 添付ファイルを一時ディレクトリに読み出す
def read_file
download_blob_to_tempfile do |file|
yield file
end
end
# snip...
end
Rails.application.config.active_storage.analyzers.append ExtractTextAnalyzer