2015-02-13 24 views
13

Udało mi się przesłać pliki w przeszłości, ale na ostatni dzień nie mogłem przesłać plików do mojego S3Nie można przesłać zdjęć do S3 z mgłą w szynach: !! # <Excon :: Błędy :: SocketError: Zły adres>

Kiedy próbuję przesłać plik z konsoli jak

Document.create(remote_file_url: 'http://www.pdf995.com/samples/pdf.pdf') 

uzyskać

Document.create(remote_file_url: 'http://www.pdf995.com/samples/pdf.pdf') 
    (0.1ms) BEGIN 
    SQL (0.7ms) INSERT INTO "documents" ("created_at", "file", "updated_at") VALUES ($1, $2, $3) RETURNING "id" [["created_at", Thu, 12 Feb 2015 22:33:59 EST -05:00], ["file", "pdf.pdf"], ["updated_at", Thu, 12 Feb 2015 22:33:59 EST -05:00]] 
    (0.2ms) ROLLBACK 
Excon::Errors::SocketError: Bad address 
    from /Users/xxxx/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/openssl/buffering.rb:375:in `syswrite_nonblock' 
    from /Users/xxxx/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/openssl/buffering.rb:375:in `write_nonblock' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/excon-0.13.4/lib/excon/socket.rb:113:in `write' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/excon-0.13.4/lib/excon/connection.rb:243:in `request_kernel' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/excon-0.13.4/lib/excon/connection.rb:97:in `request' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/fog-1.3.1/lib/fog/core/connection.rb:20:in `request' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/fog-1.3.1/lib/fog/aws/storage.rb:359:in `request' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/fog-1.3.1/lib/fog/aws/requests/storage/put_object.rb:35:in `put_object' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/fog-1.3.1/lib/fog/aws/models/storage/file.rb:133:in `save' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/fog-1.3.1/lib/fog/core/collection.rb:50:in `create' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/carrierwave-0.10.0/lib/carrierwave/storage/fog.rb:261:in `store' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/carrierwave-0.10.0/lib/carrierwave/storage/fog.rb:80:in `store!' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/carrierwave-0.10.0/lib/carrierwave/uploader/store.rb:59:in `block in store!' 
    from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247sites/gems/carrierwave-0.10.0/lib/carrierwave/uploader/callbacks.rb:17:in `with_callbacks' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/carrierwave-0.10.0/lib/carrierwave/uploader/store.rb:58:in `store!' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/carrierwave-0.10.0/lib/carrierwave/mount.rb:375:in `store!' 
... 8 levels... 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/activerecord-4.0.2/lib/active_record/transactions.rb:326:in `block in with_transaction_returning_status' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:202:in `block in transaction' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:210:in `within_new_transaction' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:202:in `transaction' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/activerecord-4.0.2/lib/active_record/transactions.rb:209:in `transaction' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/activerecord-4.0.2/lib/active_record/transactions.rb:323:in `with_transaction_returning_status' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/activerecord-4.0.2/lib/active_record/transactions.rb:270:in `block in save' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/activerecord-4.0.2/lib/active_record/transactions.rb:281:in `rollback_active_record_state!' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/activerecord-4.0.2/lib/active_record/transactions.rb:269:in `save' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/activerecord-4.0.2/lib/active_record/persistence.rb:37:in `create' 
    from (irb):11 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/railties-4.0.2/lib/rails/commands/console.rb:90:in `start' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/railties-4.0.2/lib/rails/commands/console.rb:9:in `start' 
    from /Users/xxxx/.rvm/gems/[email protected]/gems/railties-4.0.2/lib/rails/commands.rb:62:in `<top (required)>' 
    from /Users/xxxx/Sites/site/bin/rails:4:in `require' 
    from /Users/xxxx/Sites/site/bin/rails:4:in `<main>'2.0.0-p247 :012 > 

mój przesłany plik

# encoding: utf-8 
class FileUploader < CarrierWave::Uploader::Base 
    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 

    def extension_white_list 
    %w(pdf) 
    end  
end 

moim modelu

class Document < ActiveRecord::Base 
    mount_uploader :file, FileUploader 
end 

Odpowiedz

14

Obniżanie wersji OpenSSL na OS X pracował dla mnie.

brew switch openssl 1.0.1l 

Jest to znany problem z klejnotem excon. Oto problem związany:

https://github.com/excon/excon/issues/467

+0

Dzięki nie miałem 'l' ale miałem' e'. Jeszcze raz Dzięki za pomoc – MZaragoza

+0

Dzięki za to. Miałem podobny problem w projekcie Python i rozwiązałem go przez obniżenie wersji OpenSL z wersji 1.0.2 na 1.0.1k w przypadku MacPorts. – Rafa

5

Jak @eypatis wspomniano, jest to issue with the excon gem. Przejdź na wersję 1.0.1, aby obejść ten problem.

Jeśli nie już OpenSSL 1.0.1 pobrane poprzez homebrew, można użyć wersji homebrew-versions:

brew install homebrew/versions/openssl101 

Następnie można albo siła-link go /usr/local:

brew link --force openssl101 

Aby uniknąć konfliktów z innymi aplikacjami, które mogą zależeć od OpenSSL 1.0.2, należy przekazać ścieżkę do OpenSSL 1.0.1l podczas instalacji Ruby poprzez rbenv + ruby-build:

RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/local/Cellar/openssl101/1.0.1l" rbenv install 2.2.1 

Raz zainstalowany, można sprawdzić wersję OpenSSL w IRB:

irb(main):001:0> require 'openssl' 
=> true 
irb(main):002:0> OpenSSL::OPENSSL_VERSION 
=> "OpenSSL 1.0.1l 15 Jan 2015" 
+0

Dzięki temu jest doskonałym dodatkiem @eypatis Odpowiedz http://stackoverflow.com/a/28585903/1380867 – MZaragoza