Rails heroku无效配置选项
当我部署到heroku并运行heroku run rake db:migrate
我得到错误:
ArgumentError: invalid configuration option `:aws_access_key_id'
配置/初始化/ aws.rb
if Rails.env.production? S3Client = Aws::S3::Client.new( aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'], aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], aws_region: 'us-east-1' ) end
配置/初始化/ carrierwave.rb
if Rails.env.production? CarrierWave.configure do |config| config.fog_credentials = { provider: 'AWS', aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'], aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], region: 'us-east-1' } config.fog_directory = ENV['S3_BUCKET'] end end
为什么我收到“无效配置选项”错误?
编辑
新的config / initializers / carrierwave.rb文件:
if Rails.env.production? CarrierWave.configure do |config| config.fog_credentials = { provider: 'AWS', access_key_id: ENV['AWS_ACCESS_KEY_ID'], secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], region: 'us-east-1', aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'], aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], aws_region: 'us-east-1' } config.fog_directory = ENV['S3_BUCKET'] #config.fog_attributes = {:signature_version => :v4} end end
config / initializers / aws.rb现在为空。
这已修复了invalid configuration option
问题。 但是Missing required arguments: aws_access_key_id, aws_secret_access_key
当我运行RAILS_ENV=production bundle exec rake assets:precompile
时Missing required arguments: aws_access_key_id, aws_secret_access_key
它已被错误Missing required arguments: aws_access_key_id, aws_secret_access_key
替换Missing required arguments: aws_access_key_id, aws_secret_access_key
。
更令人困惑的是,我设法成功运行了RAILS_ENV=production bundle exec rake assets:precompile
在上述更改后RAILS_ENV=production bundle exec rake assets:precompile
一次,但它突然停止工作。
创建Aws::S3::Client
时的选项不以aws_
开头。 那只是愚蠢的。
if Rails.env.production? S3Client = Aws::S3::Client.new( access_key_id: ENV['AWS_ACCESS_KEY_ID'], secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], region: 'us-east-1' ) end
但是,您实际上不需要传递凭据选项:
默认凭据将从以下位置自动加载:
- ENV [‘AWS_ACCESS_KEY_ID’]和ENV [‘AWS_SECRET_ACCESS_KEY’]
我按照此页面上的步骤进行操作http://lifesforlearning.com/uploading-images-with-carrierwave-to-s3-on-rails/
而不是PictureUploaded我在app / uploads / picture_uploader.rb中使用了ImageUploader而不是carrier_wave.rb或carrierwave.rb我在s3.rb中设置了环境变量。 在进行这些更改后,它对我有用。
- 没有收到设计确认邮件
- rake assets:precompile throws Sass :: SyntaxError:“* /”之后的CSS无效
- Heroku推送错误:rake资产上的“NameError:未初始化的常量Uglifier :: VERSION”:预编译
- Heroku db:拉’db:pull不是heroku命令’
- Heroku推送拒绝:在源代码中找不到jquery-rails-2.0.0
- 部署+配置文件+ Heroku
- Heroku和Rails:如何将utf-8设置为默认编码
- 是否可以使用Ruby 1.9.3在Heroku上运行我的Rails应用程序? 如果是这样,怎么样?
- Heroku + Rails4.2:Cloudfront设置