Rails: как отключить ActiveStorage Analyzers и Previewers - PullRequest
0 голосов
/ 04 июня 2019

У меня есть приложение Rails 5.2.3, использующее ActiveStorage.По умолчанию ActiveStorage запускает некоторые фоновые задания для извлечения метаданных из вложенных файлов и / или создания миниатюр для предварительного просмотра.

Я не хочу этого.Мне не нужны никакие метаданные и не нужны эскизы.Итак, как я могу отключить эти фоновые задания?

В соответствии с официальным руководством Rails , я установил

config.active_storage.analyzers = []
config.active_storage.previewers = []

в /config/application.rb.

Однако похоже, что это не помогает.При запуске rails test я все еще вижу

[ActiveJob] [ActiveStorage::AnalyzeJob] Performing ActiveStorage::AnalyzeJob (Job ID: 741592f5-c5e4-48d7-8cf9-158790fb8a00) from Inline(default) with arguments: #<GlobalID:0x00005642f9050748 @uri=#<URI::GID >>
[ActiveJob] [ActiveStorage::AnalyzeJob] (22.0ms)  SAVEPOINT active_record_1
[ActiveJob] [ActiveStorage::AnalyzeJob] ActiveStorage::Blob Update (22.7ms)  UPDATE `active_storage_blobs` SET `metadata` = '{\"identified\":true,\"analyzed\":true}' WHERE `active_storage_blobs`.`id` = 3056
[ActiveJob] [ActiveStorage::AnalyzeJob] (21.9ms)  RELEASE SAVEPOINT active_record_1   

Я также пытался через файл инициализатора:

# /config/initializers/active_storage_disable_analyze.rb
Rails.application.config.active_storage.analyzers.delete ActiveStorage::Analyzer::ImageAnalyzer
Rails.application.config.active_storage.analyzers.delete ActiveStorage::Analyzer::VideoAnalyzer

Но это не помогает ни.

Ответы [ 2 ]

2 голосов
/ 05 июня 2019

Нет простого способа полностью отключить анализаторы.Rails возвращается к NullAnalyzer при удалении анализаторов изображений / видео, которые не собирают никаких метаданных.

Здесь вы можете увидеть, где по умолчанию

0 голосов
/ 12 июня 2019

Я вообще не хотел и не нуждался в каком-либо анализе, и использование методов модуля, похоже, помогло.

ActiveStorage::Blob::Analyzable.module_eval do

  def analyze_later
  end

  def analyzed?
    true
  end
end

Довольно рано, так что я не могу гарантировать никаких побочных эффектов, но пока все хорошо, больше не вижу записей ActiveStorage :: AnalyzeJob в моем журнале sidekiq и больших двоичных объектов, которые кажутся совершенно удобными, ссылки для скачивания работают и т. Д.

...