AWS::Errors::MissingCredentialsError in LocationsController#create Using paperclip and aws Gem
amazon-s3, amazon-web-services, ruby-on-rails
Solution
It's obviously not finding your S3 credentials. I can't find anywhere on the Paperclip docs where it says you should specify your S3 credentials in application configuration.
Generally, you can put it in the model like described here:
http://rubydoc.info/gems/paperclip/Paperclip/Storage/S3
There are several threads related to this that could help:
AWS::Errors::MissingCredentialsError using paperclip and aws-s3 in rails 3.1
Troubles setting up Paperclip + AWS S3 for image storing in our Rails3/Heroku App
Problem
Im getting the following error AWS::Errors::MissingCredentialsError in LocationsController#create with paperclip and AWS gem more details on the exception: ``` Missing Credentials. Unable to find AWS credentials. You can configure your AWS credentials a few different ways: * Call AWS.config with :access_key_id and :secret_access_key * Export AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY to ENV * ``` I'm currently running this code in a development environment on my machine Here is the development.rb ``` Gmaps::Application.configure do # Settings specified here will take precedence over those in config/application.rb # In the development environment your application's code is reloaded on # every request. This slows down response time but is perfect for development # since you don't have to restart the web server when you make code changes. config.cache_classes = false # Log error messages when you accidentally call methods on nil. config.whiny_nils = true # Show full error reports and disable caching config.consider_all_requests_local = true config.action_controller.perform_caching = false # Don't care if the mailer can't send config.action_mailer.raise_delivery_errors = false # Print deprecation notices to the Rails logger config.active_support.deprecation = :log # Only use best-standards-support built into browsers config.action_dispatch.best_standards_support = :builtin # Raise exception on mass assignment protection for Active Record models config.active_record.mass_assignment_sanitizer = :strict # Log the query plan for queries taking more than this (works # with SQLite, MySQL, and PostgreSQL) config.active_record.auto_explain_threshold_in_seconds = 0.5 # Do not compress assets config.assets.compress = false # Expands the lines which load the assets config.assets.debug = true # Amazon S3 settings for Paperclip uploads Paperclip::Attachment.default_options.merge!({ storage: :s3 , s3_credentials: { access_key_id: ENV['key_id'], secret_access_key: ENV['key'], bucket: "#{ENV['bucket']}-#{Rails.env}" }, url: ":s3_domain_url", path: "/:class/:attachment/:id_partition/:style/:filename" }) end ``` here is my model ``` class Location < ActiveRecord::Base geocoded_by :address after_validation :geocode has_attached_file :picture, :styles => { :medium => "300x300>", :thumb => "100x100>" } end ``` thanks for taking the time to look at this