Carrierwave和S3在Heroku上出现错误undefined method `fog_credentials='

3
我将尝试在Heroku上设置Carrierwave和S3。我完全按照Carrierwave文档的指示进行操作:https://github.com/jnicklas/carrierwave 我在AWS中创建了一个名为testbucket的存储桶,然后安装了Fog并创建了一个新的初始化程序,其中包含以下内容:
CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',       # required
    :aws_access_key_id      => 'my_key_inside_here',       # required
    :aws_secret_access_key  => 'my_secret_access_key_here',       # required
    :region                 => 'eu-west-1'  # optional, defaults to 'us-east-1'
  }
  config.fog_directory  = 'testbucket'                     # required

end

然后在我的image_uploader.rb文件中,我设置了:

 storage :fog

有什么我没注意到的吗?谢谢任何帮助。

我太傻了,拼错了“凭证”这个单词,导致我在毫无头绪的搜索中浪费了很长时间才意识到错误。对于其他人来说,在这里检查你的拼写可能是值得的。 - Evolve
1个回答

3
如果您正在使用carrier-wave 0.5.2版本,您需要查看gem内的文档,这些文档与Github上看到的不同。具体来说,请查看gem中的以下文件:lib/carrierwave/storage/s3.rb。
此外,将store设置为:s3,而不是:fog。 您会看到以下部分:
#     CarrierWave.configure do |config|
#       config.s3_access_key_id = "xxxxxx"
#       config.s3_secret_access_key = "xxxxxx"
#       config.s3_bucket = "my_bucket_name"
#     end
#

你应该能够在不切换到s3的情况下使用雾设置,我已经成功尝试过了: config.fog_credentials = { :provider => 'AWS', :aws_access_key_id => 'KEY', :aws_secret_access_key => 'SECRET', :region => 'eu-west-1' } config.fog_directory = 'BUCKET' - Daniel Morris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接