2016-05-17 11 views
0

Auch wenn dieser Fehler in anderen SO Fragen vorhanden ist, konnte ich nicht in der Nähe arbeiten, also suche ich nach Hilfe.Rails 4.2 + Büroklammer + Amazon s3: getaddrinfo: nodename noch servname zur Verfügung gestellt, oder nicht bekannt

Ich verwende rails 4.2.5, paperclip ~>4.1, aws-sdk <2.0, um angehängte Dateien in Amazon S3 zu speichern.

Ich habe eine bucket und eine IAM User created, die AmazonS3FullAccess Berechtigungen hat und mit seinen Anmeldeinformationen versuche ich, von Rails wie folgt zu verbinden.

config/Umgebungen/development.rb

config.paperclip_defaults = { 
    :storage => :s3, 
    :s3_credentials => { 
    :bucket => 'bucket-name', 
    :access_key_id => '****', 
    :secret_access_key => '****', 
    } 
} 

app/models/user.rb

has_attached_file :avatar, 
    :styles => { :medium => "300x300#", :thumb => "100x100#" }, 
    :default_url => "/img/avatar-missing.jpg", 
    :storage => :s3, 
    :s3_host_name => "s3-us-east-1.amazonaws.com" 

konfiguriert ich die Eimer Berechtigungen mit dieser Politik

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "AddPerm", 
      "Effect": "Allow", 
      "Principal": "*", 
      "Action": [ 
       "s3:GetObject", 
       "s3:PutObject" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::bucket-name/*" 
      ] 
     } 
    ] 
} 

Aber wh en Ich versuche etwas, um es zu laden, wirft er mir diese ******* Fehler:

getaddrinfo: nodename nor servname provided, or not known 

in der Konsolen ich, dass Büroklammer das Bild, um die Größe ist in der Lage zu sehen, aber es ist zum Hochladen nicht in der Lage es zu Amazon S3

[paperclip] saving /users/avatars/000/000/001/original/10382845_246916218831306_3480489092212800336_n.jpg 
[AWS S3 200 2.304022 3 retries] put_object(:acl=>:public_read,:bucket_name=>"bucket-name",:content_length=>41431,:content_type=>"image/jpeg",:data=>Paperclip::UploadedFileAdapter: 10382845_246916218831306_3480489092212800336_n.jpg,:key=>"users/avatars/000/000/001/original/10382845_246916218831306_3480489092212800336_n.jpg") SocketError getaddrinfo: nodename nor servname provided, or not known 

Jede Hilfe sehr

Antwort

3

geschätzt werden können Sie das Modell so zu konfigurieren versuchen:

has_attached_file :my_file, 
    :storage => :s3, 
    :default_url => "/default.default", 
    :s3_region => ENV['AWS_REGION'], 
    :s3_credentials => { 
     :bucket => ENV['AWS_BUCKET_NAME'], 
     :access_key_id => ENV['AWS_ACCESS_KEY_ID'], 
     :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'], 
     :region => ENV['AWS_REGION'] 
    } 

manchmal ist das Problem, dass eine Region nicht definiert ist und die Konfiguration fehlschlägt.

+0

Danke Mann. Dies kann auch in den Initialisierer verschoben werden. Der Schlüssel (mit diesen Gems-Versionen) besteht darin, '' s3_region' 'in den ** paperclip_defaults ** Hash und ': region' im **: s3_credentials ** Hash zu deklarieren. Vielen Dank, ich verliere viel Zeit damit, das zu bekämpfen. – mariowise