【发布时间】:2015-01-17 15:10:48
【问题描述】:
我的 Rails 应用程序托管在 Heroku 上,但我需要让 Paperclip 在本地工作,以便在测试中上传照片。我真的很接近,但我卡在“缺少必需的:bucket 选项”错误。
我尝试在我的环境文件中移动设置以及添加一个包含我的 AWS 凭证的 config/application.yml 文件,但没有骰子。
这是我在 development.rb 中的配置(在 production.rb 中看起来相同):
config.paperclip_defaults = {
:storage => :s3,
:s3_credentials => {
:bucket => ENV['S3_BUCKET_NAME'],
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
}
}
我尝试将 :bucket 属性移到 :s3_credentials 之外,但它没有改变任何东西。 Application.yml 看起来像这样:
AWS_ACCESS_KEY_ID="xxxxxxxxxxxxxxxxx"
AWS_SECRET_ACCESS_KEY="xxxxxxxxxxxxxxxxxxxx"
S3_BUCKET_NAME="xxxxxx"
我还安装了 dot-env gem 并将一个 s3.env 文件添加到我的应用程序的索引中,其中包含与上述相同的凭据,但即使这样也不起作用。也没有将我的 Paperclip 配置与我的模型中的 has_attached_file 内联。
我该怎么办??
【问题讨论】:
-
文档建议我将该文件称为 .env,而不是 s3.env。 development.rb 加载时是否设置了环境变量?
-
您能否更详细地解释一下您对 development.rb 中的环境变量的含义?
-
实际上更改为 .env 有效!
-
我推荐使用 figaro,它与 heroku github.com/laserlemon/figaro 配合得很好
-
又一票投给费加罗。它将使用 application.yml。不需要 dot-env 和其他环境文件。
标签: ruby-on-rails ruby heroku amazon-web-services amazon-s3