I am trying to run this import task from my heroku rails app which connects to AWS and grabs a CSV but get the following error (full error shown below):
ArgumentError: wrong number of arguments (given 1, expected 2..3)
Any help would be greatly appreciated.
Here is the code in my initializers/aws.rb file where I put my credentials:
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'])
})
Here is the task(in one of my rake files):
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
This is the full console error
Franks-MacBook-Air:nba_site frankburke$ heroku run rails player_query:import
Running rails player_query:import on ⬢ protected-tundra-94123... up, run.3454 (Free)
rails aborted!
ArgumentError: wrong number of arguments (given 1, expected 2..3)
/app/vendor/bundle/ruby/2.3.0/gems/aws-sdk-core-3.19.0/lib/aws-sdk-core/credentials.rb:7:in initialize'
/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:in block 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:in load'
/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/engine.rb:648:inblock in load_config_initializer'
/app/vendor/bundle/ruby/2.3.0/gems/activesupport-5.0.2/lib/active_support/notifications.rb:166:in instrument'
/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:in block (2 levels) in <class:Engine>'
/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/engine.rb:611:ineach'
/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/engine.rb:611:in block 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:in run'
/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/initializable.rb:55:inblock in run_initializers'
/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/initializable.rb:44:in each'
/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:in run_initializers'
/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/application.rb:352:ininitialize!'
/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:in require_environment!'
/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/application.rb:448:inblock in run_tasks_blocks'
/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/commands/rake_proxy.rb:14:in block 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/commands/commands_tasks.rb:51:in run_command!'
/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/commands.rb:18:in'
/app/bin/rails:9:in require'
/app/bin/rails:9:in'
Tasks: TOP => player_query:import => environment
(See full trace by running task with --trace)