2015-02-13 6 views
13

मैं मैं अपने S3रेल में धुंध के साथ एस 3 पर फोटो अपलोड नहीं कर सकते हैं !! # <Excon :: त्रुटियाँ :: SocketError: खराब पता>

पर फ़ाइलें अपलोड करने में सक्षम नहीं किया गया अतीत में, लेकिन अंतिम दिन दिन के लिए फाइल अपलोड करने में सक्षम था जब मैं एक अपलोड करने की कोशिश

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

तरह कंसोल से फ़ाइल मैं

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 > 

मेरी अपलोड की गई फ़ाइल

# 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 

मेरे मॉडल

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

उत्तर

14

ओएस एक्स पर OpenSSL संस्करण डाउनग्रेड करना मेरे लिए काम किया।

brew switch openssl 1.0.1l 

यह excon मणि के साथ एक ज्ञात समस्या है।

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

+0

धन्यवाद मैं 'नहीं था l' लेकिन मैं' था e'। मदद के लिए फिर से धन्यवाद – MZaragoza

+0

इसके लिए धन्यवाद। मुझे एक पायथन परियोजना पर एक ही समस्या थी और मैकपॉर्ट्स के साथ वर्जन 1.0.2 से 1.0.1k तक ओपनस्ल डाउनग्रेड करके इसे हल किया गया। – Rafa

5

जैसा कि बताया जा @eypatis, यह एक issue with the excon gem है: यहाँ संबंधित मुद्दा है। वर्कअराउंड के रूप में संस्करण 1.0.1 में डाउनग्रेड करें।

आप पहले से ही है OpenSSL 1.0.1 homebrew के माध्यम से डाउनलोड नहीं किया है, तो आप homebrew-versions संस्करण का उपयोग कर सकते हैं:

brew link --force openssl101 
:

brew install homebrew/versions/openssl101 

तो फिर तुम /usr/local के लिए या तो बल-लिंक यह कर सकते हैं

या, ओपनएसएसएल 1.0.2 पर निर्भर अन्य अनुप्रयोगों के साथ संघर्ष से बचने के लिए, rbenv + ruby-build:

के माध्यम से रूबी इंस्टॉल करते समय ओपनएसएसएल 1.0.1l के पथ को पास करें। 10
RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/local/Cellar/openssl101/1.0.1l" rbenv install 2.2.1 
एक बार स्थापित

, आप आईआरबी में OpenSSL संस्करण की पुष्टि कर सकते हैं:

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

धन्यवाद यह एक महान जोड़ा @eypatis उत्तर है http://stackoverflow.com/a/28585903/1380867 – MZaragoza

संबंधित मुद्दे

 संबंधित मुद्दे