heroku 未初始化的常量ActiveStorage::Analyzer::ImageAnalyzer::MiniMagick

7vux5j2d  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(142)

我在Heroku上的一个Rails应用程序上得到了这个错误:

NameError: uninitialized constant ActiveStorage::Analyzer::ImageAnalyzer::MiniMagick
/app/vendor/bundle/ruby/3.0.0/gems/activestorage-6.1.3/lib/active_storage/analyzer/image_analyzer.rb:46:in `rescue in read_image'

字符串
它发生在从ActiveStorage::AnalyzeJob生成的Sidekiq作业中,并且似乎在我尝试将图像上传到AWS存储时触发(图像没有到达我的存储桶)。
奇怪的是,我在Heroku上有一个重复的staging版本的应用程序,使用相同的配置,它不会触发这些错误(图像确实从staging到达我的bucket)。
这两个版本的应用程序都使用相同的gems和buildpack。
两个版本都安装了ImageMagick 6.9.10-23和mini_magick 4.11.0。
如果我引用上面提到的类,两个版本都会在控制台显示相同的错误,例如:

$ heroku run rails c -a my-staging-app
Running rails c on ⬢ my-staging-app... up, run.9122 (Free)
Loading staging environment (Rails 6.1.3)
irb(main):001:0*  ActiveStorage::Analyzer::ImageAnalyzer
=> ActiveStorage::Analyzer::ImageAnalyzer
irb(main):002:0>  ActiveStorage::Analyzer::ImageAnalyzer::MiniMagick
Traceback (most recent call last):
        1: from (irb):2:in `<main>'
NameError (uninitialized constant ActiveStorage::Analyzer::ImageAnalyzer::MiniMagick)
Did you mean?  MiniMime


但我不知道为什么staging应用程序在上传到AWS时没有遇到错误。
有谁知道如何修复未初始化的常量?(引用的类需要从哪里来?)

mfpqipee

mfpqipee1#

我不知道为什么我得到这个特定的错误,但我意识到我的配置实际上是不一样的登台和生产。
我在production.rb中仍然有config.active_storage.service = :local
我将其更改为config.active_storage.service = :amazon,现在文件上传到我的AWS存储桶中,没有任何错误。

相关问题