簡體   English   中英

當我耙db:migrate時,出現ArgumentError

[英]When I rake db:migrate, an ArgumentError appears

我想從遠程提交重新開始我的項目,因此,在下載zip文件並放回所有.gitignore文件之后,當我嘗試耙db:migrate時,我收到此錯誤。

ArgumentError: Missing required arguments: aws_access_key_id, aws_secret_access_key
2.1.5/gems/fog-core-1.25.0/lib/fog/core/service.rb:234:in `validate_options'
2.1.5/gems/fog-core-1.25.0/lib/fog/core/service.rb:258:in `handle_settings'
/s/ruby-2.1.5/gems/fog-core-1.25.0/lib/fog/core/service.rb:98:in `new'
/gems/fog-core-1.25.0/lib/fog/storage.rb:25:in `new'
gems/carrierwave-carrierwave/uploader/configuration.rb:83:in `eager_load_fog'
//.rvm/gems/ruby-2.1.5/gems/carrierwave-0.10.0/lib/carrierwave/uploader/configuration.rb:96:in     `fog_credentials='
/bloccit/config/initializers/fog.rb:2:in `block in <top (required)>'
e/.rvm/gems/ruby-2.1.5/gems/carrierwave-0.10.0/lib/carrierwave/uploader/configuration.rb:118:in `configure'

因此,我知道我的fog.rb文件有問題,但是我該如何解決? 在哪里放置AWS代碼的值的好地方?

我的fog.rb

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']
}
config.fog_directory   = ENV['AWS_BUCKET']
config.fog_public      = true
end

您可以將值放在config內的yml文件中,按環境分隔各個部分-就像在config / database.yml中一樣。 當然,您需要在應用啟動時加載文件。 建議不要提交此文件。

或者,您可以在應用中創建一個.env文件。 查看https://github.com/bkeepers/dotenv

為了快速解決,您可以在rake任務中將值作為環境變量發送。

AWS_ACCESS_KEY_ID=123 AWS_SECRET_ACCESS_KEY=abc rake db:migrate

通過以下兩種方法,您可以擺脫此錯誤。 錯誤是因為您的系統中沒有可用的環境變量。

如果您有ENV['AWS_ACCESS_KEY_ID']和其他環境變量,則將它們作為字符串傳遞給for.rb

CarrierWave.configure do |config|
  config.fog_credentials = {
    provider:               'AWS',
    aws_access_key_id:      'xxxxxxxx',
    aws_secret_access_key:  'xxxxxxxxxxx'
  }
  config.fog_directory   = 'xxxxxxx'
  config.fog_public      = true
end

如果您沒有憑證,或者您不想在開發模式下使用AWS空間,則可以使用文件系統保存圖像。

app/uploaders下的上載文件中將storage :fog更改為storage :file 無需其他更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM