2016-05-17 81 views
0

即使此錯誤出現在其他SO問題中,我也無法工作,因此我正在尋求幫助。Rails 4.2 + Paperclip +亞馬遜S3:getaddrinfo:nodename,也不提供服務名稱

我正在使用rails 4.2.5,paperclip ~>4.1,aws-sdk <2.0將附件存入Amazon S3

我已經crekedted bucketIAM User誰擁有AmazonS3FullAccess權限和他的憑據我試圖從Rails這樣連接。

配置/環境/ development.rb

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

應用程序/模型/ 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" 

我配置了區權限這一政策

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

但是,恩我嘗試的東西上傳到它,它拋出我這個*******錯誤:

getaddrinfo: nodename nor servname provided, or not known 

在控制檯中,我可以看到回形針可以調整圖片的大小,但它是不能夠上傳它到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 

任何幫助將高度讚賞

回答

3

你可以嘗試配置模型是這樣的:

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'] 
    } 

有時候問題是一個區域沒有被定義,並且配置失敗。

+0

謝謝你。這也可以移入初始化器。關鍵字(使用這個寶石版本)是在** paperclip_defaults **哈希中聲明':s3_region',在**:s3_credentials **哈希中聲明':region'。非常感謝,我失去了很多時間來對抗這個。 – mariowise