我有一个使用ActiveStorage的Rails 5. 2. 3应用程序。默认情况下,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
但这也无济于事。
4条答案
按热度按时间lhcgjxsq1#
我根本不想或不需要任何分析,而重写模块方法似乎可以达到目的。
相当早的几天,所以我不能保证没有副作用,但到目前为止一切顺利,不再看到任何ActiveStorage::AnalyzeJob条目在我的sidekiq日志和斑点似乎完全可用,下载链接工作等。
ryevplcw2#
要完全禁用Analyzers并不容易,当你删除图像/视频分析器时,Rails福尔斯到NullAnalyzer,这不会收集任何元数据。
您可以在此处看到它的默认位置
taor4pac3#
配置/初始化器/override_as_blob.rb
p8ekf7hl4#
我更喜欢一个明确的方式,删除自动调用。