ruby-on-rails - Rails AWS 配置文件错误
问题描述
我正在尝试从连接到 AWS 并获取 CSV 的 heroku rails 应用程序运行此导入任务,但出现以下错误(如下所示的完整错误):
ArgumentError:参数数量错误(给定 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'])
})
这是任务(在我的一个 rake 文件中):
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 Running rails player_query:import on ⬢ protected-tundra-94123... up, run.3454 (Free) rails aborted!ArgumentError:参数数量错误(给定 1,预期 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:in
new' /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:in
load' /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:in
load_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:in
block 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:in
load_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:in
each' /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:in
instance_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:in
block 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:in
tsort_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:in
需要'/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:in
block in run_tasks_blocks' /app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/commands/rake_proxy.rb:14:block in run_rake_task'
/app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/commands/rake_proxy.rb:11:in
run_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
' 任务: TOP => player_query:import => environment(通过使用 --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'])
})
推荐阅读
- ios - 如何在 SwiftUI 中使用 URLSession 请求后呈现视图?
- sublimetext3 - 使用 Sublime Text 查找/替换向输入标签添加属性
- azure - 尝试向用户添加架构扩展时权限不足
- java - 如何解析字符串二十一点游戏结果
- python-3.x - 随机显示列表中的图像
- javascript - 函数的并行执行 | 不需要异步等待,因为不需要等待
- python - 使用 python pandas 找到两列之间的相关方程
- java - 代码错误“org.openqa.selenium.remote.DriverCommand.NEW_SESSION”
- c - 导出 C 中的任意符号
- object-detection - ml kit对象检测api模板匹配