2012-12-30 9 views
7

Ich erhalte zur Zeit den folgenden Fehler: Excon::Errors::SocketError - Broken pipe (Errno::EPIPE) beim Hochladen von Bildern größer als etwa 150kb. Bilder unter 150kb funktionieren korrekt. Die Forschung zeigt, dass andere dieses Problem ebenfalls erfahren haben, aber ich muss noch eine Lösung finden.Carrierwave + s3 + Nebel (Excon :: Errors :: SocketError)

Fehlermeldung

Excon::Errors::SocketError at /photos 

Message Broken pipe (Errno::EPIPE) 
File /Users/thmsmxwll/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/openssl/buffering.rb 
Line 375 

image_uploader.rb

class ImageUploader < CarrierWave::Uploader::Base 
    include CarrierWave::RMagick 

    storage :fog 

    include CarrierWave::MimeTypes 
    process :set_content_type 

    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 

    version :large do 
    process :resize_to_limit => [800, 600] 
    end 
end 

carrierwave.rb

CarrierWave.configure do |config| 
    config.fog_credentials = { 
    :provider    => 'AWS', 
    aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'],       
    aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], 
    :region     => 'us-east-1' 
    } 
    config.fog_directory = 'abcd'     
    config.fog_public  = true         
    config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} 
end 
+0

Ich denke, wir haben mit dem gleichen Problem zu tun. Haben Sie eine Lösung für dieses Problem gefunden? Thx – Bachet

+0

Leider nicht. –

+1

Ich bin vor ein paar Tagen auf diesen Fehler gestoßen und es stellte sich heraus, dass mein fog_directory falsch war (es ist ein furchtbar allgemeiner Fehler für etwas so Spezifisches). Es kann sich lohnen zu überprüfen, ob der Bucket-Name korrekt ist und ob die Berechtigungen korrekt sind. – Wakeuphate

Antwort

8

Für mich erforderte die Lösung, den Bucket in der US-Standard-Region neu zu erstellen. Ursprünglich befand sich der Bucket in der Region Oregon, und obwohl ich in meinen carrierwave-Einstellungen keine Region angegeben hatte, konnte ich selbst mit sehr kleinen Dateien keinen Upload abschließen.

+0

Hallo hatte das gleiche Problem (konnte nicht einmal kleine Dateien hochladen) und Ihre Lösung (Umstellung auf US-Standard-Region) auch für mich gearbeitet. – Daan

+0

Arbeitete auch für mich. Es scheint, dass der US-Standard es nicht erfordert, eine Region anzugeben. Eine alternative Lösung besteht darin, die richtige Region für Ihren Bucket anzugeben: http://www.bucketexplorer.com/documentation/amazon-s3--amazon-s3-buckets-and-regions.html – rebagliatte

1

Ich bin ha Ving das gleiche Problem, bemerkte ich, dass nur passiert, wenn ich große Dateien (400kb) hochladen, mit einem kleineren (100kb) funktioniert es gut.

+0

Ich fand, dass ich nichts größer als 150kb hochladen konnte - habe immer noch keine Lösung für das Problem gefunden, außer die Bilddateigröße zu verringern. –

+4

Das Problem war in meiner Bucket-Region. Als ich den Bucket erstellte, zeigte er auf einen anderen Speicherort als in der Datei initializer/carrierwave.rb angegeben. Nachdem ich meine Region korrigiert hatte, hat alles funktioniert! –

+0

Ich habe dies überprüft ... Ich werde dreifach prüfen und sehen, ob es mein Problem löst. Vielen Dank. –

Verwandte Themen