我以前能够上传文件但是最后一天我无法将文件上传到我的S3
当我尝试从控制台上传文件时
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/ruby-2.0.0-p247@sites/gems/excon-0.13.4/lib/excon/socket.rb:113:in `write'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/excon-0.13.4/lib/excon/connection.rb:243:in `request_kernel'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/excon-0.13.4/lib/excon/connection.rb:97:in `request'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/fog-1.3.1/lib/fog/core/connection.rb:20:in `request'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/fog-1.3.1/lib/fog/aws/storage.rb:359:in `request'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/fog-1.3.1/lib/fog/aws/requests/storage/put_object.rb:35:in `put_object'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/fog-1.3.1/lib/fog/aws/models/storage/file.rb:133:in `save'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/fog-1.3.1/lib/fog/core/collection.rb:50:in `create'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/carrierwave-0.10.0/lib/carrierwave/storage/fog.rb:261:in `store'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/carrierwave-0.10.0/lib/carrierwave/storage/fog.rb:80:in `store!'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/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/ruby-2.0.0-p247@sites/gems/carrierwave-0.10.0/lib/carrierwave/uploader/store.rb:58:in `store!'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/carrierwave-0.10.0/lib/carrierwave/mount.rb:375:in `store!'
... 8 levels...
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/activerecord-4.0.2/lib/active_record/transactions.rb:326:in `block in with_transaction_returning_status'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:202:in `block in transaction'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:210:in `within_new_transaction'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:202:in `transaction'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/activerecord-4.0.2/lib/active_record/transactions.rb:209:in `transaction'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/activerecord-4.0.2/lib/active_record/transactions.rb:323:in `with_transaction_returning_status'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/activerecord-4.0.2/lib/active_record/transactions.rb:270:in `block in save'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/activerecord-4.0.2/lib/active_record/transactions.rb:281:in `rollback_active_record_state!'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/activerecord-4.0.2/lib/active_record/transactions.rb:269:in `save'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@sites/gems/activerecord-4.0.2/lib/active_record/persistence.rb:37:in `create'
from (irb):11
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@site/gems/railties-4.0.2/lib/rails/commands/console.rb:90:in `start'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@site/gems/railties-4.0.2/lib/rails/commands/console.rb:9:in `start'
from /Users/xxxx/.rvm/gems/ruby-2.0.0-p247@site/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
答案 0 :(得分:14)
在OS X上降级OpenSSL版本对我有用。
brew switch openssl 1.0.1l
这是excon gem的一个已知问题。以下是相关问题:
答案 1 :(得分:5)
正如@eypatis所提到的那样,它是issue with the excon gem。降级到版本1.0.1作为解决方法。
如果您还没有通过自制软件下载OpenSSL 1.0.1,则可以使用homebrew-versions版本:
brew install homebrew/versions/openssl101
然后您可以强制将其链接到/usr/local
:
brew link --force openssl101
或者,为避免与可能依赖于OpenSSL 1.0.2的其他应用程序发生冲突,请在通过rbenv + ruby-build安装Ruby时将路径传递给OpenSSL 1.0.1:
RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/local/Cellar/openssl101/1.0.1l" rbenv install 2.2.1
安装完成后,您可以在irb:
中验证OpenSSL版本irb(main):001:0> require 'openssl'
=> true
irb(main):002:0> OpenSSL::OPENSSL_VERSION
=> "OpenSSL 1.0.1l 15 Jan 2015"