2016-08-08 62 views
0

Ich bin wirklich mit diesem fest, ich habe versucht, eine Antwort auf StackOverflow zu finden, aber nichts hat wirklich funktioniert, ich hoffe, jemand kann mir einige Ratschläge geben. Alles funktionierte vor Ort gut, bevor die AWS-Parameter hinzugefügt wurden und funktionierte immer noch, wenn ich kein Bild in ein Profil hochladen konnte.Nebel Fehlende erforderliche Argumente: aws_access_key_id

Hauptproblem >>

Argument in Devise :: RegistrationsController # update
Erforderliche Argumente fehlen: aws_access_key_id

Hier die user.rb ist: (vielleicht mein Speicher ist falsch oder die Anmeldeinformationen, oder vielleicht ich habe nicht die Datei mit allen Aws_key_ID)

class User < ActiveRecord::Base 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    has_attached_file :avatar, 
    :styles => { 
     :medium => "300x300>", 
     :thumb => "100x100#" 
     }, 
    :default_url => "/images/:style/missing.png", 
    :url => ":s3_domain_url", 
    :path => "public/avatars/:id/:style_:basename.:extension", 
    :storage => :fog, 
    #Configuration for Amazon S3 
    :fog_credentials => { 
     provider: 'AWS', 
     region: 'Frankfurt', 
     aws_access_key_id: ENV["AWS_ACCESS_KEY_ID"], 
     aws_secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"] 
    }, 
     fog_directory: ENV["FOG_DIRECTORY"] 

    validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/ 
end 

GemFile initiieren:

gem 'paperclip', '~> 4.1' 
gem 'devise' 
gem 'aws-sdk' 
gem 'fog' 
gem 'figaro' 

application.yml

SECRET_KEY_BASE: 'XXXXXxxxxxxxxxxxxxxxxxxxxxxx' 
AWS_ACCESS_KEY_ID: 'xxxxxxxxxQ' 
AWS_SECRET_ACCESS_KEY: 'yxxxxxxx' 
EMAIL_LOGIN: '[email protected]' 
EMAIL_PASSWORD: 'xxxxxx' 
development: 
    FOG_DIRECTORY: demo-dev 
production: 
    FOG_DIRECTORY: demo-production 

secret.yml

development: 
    secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 

test: 
    secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 

production: 
    secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 

Sollte ich etwas in der production.rb Datei hinzufügen?

Hoffnung finden Sie einige Ratschläge zu finden, mir zu helfen: D

Martin

Antwort

1

Hey you haven 'richtig konfiguriert, wenn fog_credentials Laden, so wäre es:

config = YAML::load_file('config/application.yml') 
... 
:fog_credentials => { 
    provider: 'AWS', 
    region: 'Frankfurt', 
    aws_access_key_id: config["AWS_ACCESS_KEY_ID"], 
    aws_secret_access_key: config["AWS_SECRET_ACCESS_KEY"] 
} 
... 

Weil Sie haven' t setze irgendwelche env-Variablen dafür, aber du hast es bereits in deiner application.yml definiert, also lade sie einfach

+0

Es hat geklappt, ich habe ein anderes Problem mit S3-Anmeldeinformationen, aber es arbeitete für diesen Teil;) –

+0

schließlich änderte die Region, und alles funktionierte gut –

+0

Ich freue mich, das zu hören :) @MartinRails –