Search code examples
ruby-on-railsrubyamazon-web-servicesamazon-s3fog

ArgumentError: aws is not a recognized provider AWS/S3


I've started to learn RoR and start with this:

https://github.com/drhenner/ror_ecommerce

When I try to run:

RAILS_ENV=development bundle exec rake assets:precompile

I got - rake aborted!

rake aborted!
ArgumentError: aws is not a recognized provider
/home/osahaidak/.rvm/gems/ruby-2.4.0/gems/fog-core-1.45.0/lib/fog/core/services_mixin.rb:12:in `new'
/home/osahaidak/.rvm/gems/ruby-2.4.0/gems/fog-core-1.45.0/lib/fog/storage.rb:27:in `new'
/home/osahaidak/.rvm/gems/ruby-2.4.0/gems/asset_sync-2.2.0/lib/asset_sync/storage.rb:20:in `connection'
/home/osahaidak/.rvm/gems/ruby-2.4.0/gems/asset_sync-2.2.0/lib/asset_sync/storage.rb:25:in `bucket'
/home/osahaidak/.rvm/gems/ruby-2.4.0/gems/asset_sync-2.2.0/lib/asset_sync/storage.rb:91:in `get_remote_files'
/home/osahaidak/.rvm/gems/ruby-2.4.0/gems/asset_sync-2.2.0/lib/asset_sync/storage.rb:212:in `upload_files'
/home/osahaidak/.rvm/gems/ruby-2.4.0/gems/asset_sync-2.2.0/lib/asset_sync/storage.rb:234:in `sync'
/home/osahaidak/.rvm/gems/ruby-2.4.0/gems/asset_sync-2.2.0/lib/asset_sync/asset_sync.rb:29:in `block in sync'
/home/osahaidak/.rvm/gems/ruby-2.4.0/gems/asset_sync-2.2.0/lib/asset_sync/asset_sync.rb:51:in `with_config'
/home/osahaidak/.rvm/gems/ruby-2.4.0/gems/asset_sync-2.2.0/lib/asset_sync/asset_sync.rb:28:in `sync'
/home/osahaidak/.rvm/gems/ruby-2.4.0/gems/asset_sync-2.2.0/lib/tasks/asset_sync.rake:5:in `block (2 levels) in <top (required)>'
/home/osahaidak/.rvm/gems/ruby-2.4.0/gems/asset_sync-2.2.0/lib/tasks/asset_sync.rake:28:in `block in <top (required)>'
/home/osahaidak/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in `eval'
/home/osahaidak/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => assets:sync

In my asset_sync.yml

defaults: &defaults
  fog_provider: 'AWS'
  aws_access_key_id: "<%= ENV['AWS_ACCESS_KEY_ID'] %>"
  aws_secret_access_key: "<%= ENV['AWS_SECRET_ACCESS_KEY'] %>"
  fog_directory: "<%= ENV['FOG_DIRECTORY'] %>"

Any thoughts?


Solution

  • You might want to use the gem fog-aws Then you need to create an initializer file, config/initializers/your_choice_of_name.rb

    If you want to upload files, you also need an image uploader

    CarrierWave and ImageMagick are two examples of Image uploaders. This video shows an example with CarrierWave.

    Here's a blog comparing uploaders. https://infinum.co/the-capsized-eight/best-rails-image-uploader-paperclip-carrierwave-refile

    In the documentation for the uploader, (for example gem Carrierwave) there will be instructions for what to put in the config/initializer file etc.