Rails AWS 配置文件错误



我正在尝试从我的heroku rails应用程序运行此导入任务,该应用程序连接到AWS并获取CSV,但收到以下错误(完整错误如下所示):

参数错误:错误的参数数(给定 1,预期为 2..3)

任何帮助将不胜感激。

这是我的初始值设定项/aws.rb 文件中的代码,我在其中放置了我的凭据:

Aws.config.update({
region: 'us-east-2',
credentials: Aws::Credentials.new(access_key_id: 
ENV['AWS_ACCESS_KEY_ID'], secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'])
})

这是任务(在我的一个耙子文件中):

desc "import for CSV to S3"
task import: [:environment] do
s3 = Aws::S3::Client.new(region:'us-east-2', credentials: credentials)
File.open('nba_data.csv', 'wb') do |file|
reap = s3.get_object({ bucket: 'nba-api', key: 'nba_data.csv'}, target: file)
csv_text = File.read('nba_data.csv')
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
Player.create!(row.to_hash.except("id"))
end
end
end

这是完整的控制台错误

Franks-MacBook-Air:nba_site Frankburke$ heroku run rails player_query:import 运行轨道 player_query:导入 ⬢ 受保护的苔原-94123...向上,运行.3454(免费) 轨道中止! 参数错误:错误的参数数(给定 1,预期为 2..3)/app/vendor/bundle/ruby/2.3.0/gems/aws-sdk-core-3.19.0/lib/aws-sdk-core/credentials.rb:7:ininitialize' /app/config/initializers/aws.rb:4:innew'/app/config/initializers/aws.rb:4:in<top (required)>' /app/vendor/bundle/ruby/2.3.0/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:287:inload'/app/vendor/bundle/ruby/2.3.0/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:287:inblock in load' /app/vendor/bundle/ruby/2.3.0/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:259:inload_dependency'/app/vendor/bundle/ruby/2.3.0/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:287:inload' /app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/engine.rb:648:in块在load_config_initializer'/app/vendor/bundle/ruby/2.3.0/gems/activesupport-5.0.2/lib/active_support/notifications.rb:166:ininstrument' /app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/engine.rb:647:inload_config_initializer'/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/engine.rb:612:inblock (2 levels) in <class:Engine>' /app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/engine.rb:611:in/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/engine.rb:611:inblock in <class:Engine>' /app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/initializable.rb:30:ininstance_exec'/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/initializable.rb:30:inrun' /app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/initializable.rb:55:in块在run_initializers'/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/initializable.rb:44:ineach' /app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/initializable.rb:44:intsort_each_child'/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/initializable.rb:54:inrun_initializers' /app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/application.rb:352:in初始化!'/app/config/environment.rb:5:in<top (required)>' /app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/application.rb:328:inrequire'/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/application.rb:328:inrequire_environment!' /app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/application.rb:448:in块在run_tasks_blocks'/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/command/rake_proxy.rb:14:inblock in run_rake_task' /app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/commands/rake_proxy.rb:11:inrun_rake_task'/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/command/commands_tasks.rb:51:inrun_command!' /app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/commands.rb:18:in'/app/bin/rails:9:inrequire' /app/bin/rails:9:in' 任务:顶部 => player_query:导入 => 环境 (通过使用 --trace 运行任务来查看完整跟踪)

你能尝试改变这个吗...

Aws.config.update({
region: 'us-east-2',
credentials: Aws::Credentials.new(access_key_id: 
ENV['AWS_ACCESS_KEY_ID'], secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'])
})

对此

Aws.config.update({
region: 'us-east-2',
credentials: Aws::Credentials.new(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'])
})

最新更新