【发布时间】:2015-05-21 18:49:04
【问题描述】:
我已经完成了 Michael Hartl 教程,我正在尝试使用 https://www.digitalocean.com/community/tutorials/how-to-deploy-a-rails-app-with-puma-and-nginx-on-ubuntu-14-04 部署它。不幸的是,我被 RAILS_ENV=production rake db:migrate 困住了,因为它会产生以下错误:
ArgumentError: Missing required arguments: aws_access_key_id, aws_secret_access_key
/home/me/simpleapp/config/initializers/carrier_wave.rb:3:in `block in <top (required)>'
/home/me/simpleapp/config/initializers/carrier_wave.rb:2:in `<top (required)>'
/home/me/simpleapp/config/environment.rb:5:in `<top (required)>
'
我什至已经 1:1 复制了这些文件,但这个错误仍然存在。知道我该如何解决吗?我真的厌倦了尝试使用来自网络的不同解决方案来修复它。 谢谢
编辑:我正在添加我的carrier_wave 文件:
if Rails.env.production?
CarrierWave.configure do |config|
config.fog_credentials = {
# Configuration for Amazon S3
:provider => 'AWS',
:aws_access_key_id => ENV['S3_ACCESS_KEY'],
:aws_secret_access_key => ENV['S3_SECRET_KEY']
}
config.fog_directory = ENV['S3_BUCKET']
end
end
【问题讨论】:
-
您需要在生产环境中设置 AWS 环境变量。可能您的初始化程序 (
carrier_wave.rb) 期望在您的生产环境中设置ENV['aws_access_key_id']和ENV['aws_secret_access_key']或类似的东西。 -
在某个阶段,我尝试在任何地方设置它 -> 我得到了将其设置在 secrets.yml 中的建议。但它不起作用:/
-
你能用你的载波初始化器的前 10 行更新你的帖子吗?
-
我已经更新了我的第一篇文章。我尝试过:将这些值直接添加到文件中将值添加到secrets.yml 将值添加到.bashrc
-
在您的 prod 机器上,尝试
printenv | grep 'S3'。看到这三个 S3 环境变量了吗(S3_ACCESS_KEY、S3_SECRET_KEY、S3_BUCKET)?
标签: ruby-on-rails ruby-on-rails-4 amazon-web-services nginx fog