【问题标题】:Socket Error when uploading CarrierWave image after changing to chruby更改为 chruby 后上传 CarrierWave 图像时出现套接字错误
【发布时间】:2015-03-17 14:56:44
【问题描述】:

在我从 RVM 切换到 CHRuby 之前,我的设置工作正常。

当我重新启动服务器并加载本地页面时,我得到一个看起来像这样的对话框。

https://superuser.com/questions/100013/why-does-the-mac-os-x-firewall-dialog-recurringly-pop-up-and-disappear-by-itself

我点击了“拒绝”,但返回并启用了 ruby​​ 的防火墙设置。 http://imgur.com/GxPQHYz

我检查了我的 IAM 安全凭证,一切都与载波初始化程序中的内容相符。

经过其他一些测试,我发现:

当我在应用程序中使用其他载波上传器时,图像更新正常。这让我相信我的 AWS 安全设置很好。

在参数哈希中排除 :image 时,新照片保存得很好

@photo = Photo.new(photo_params.except("image"))

这可能是 Postgres 中的数据表问题。我刚从 SQlite 切换到 Postgres

我的设置是

gem 'fog'
gem 'mini_magick'
gem 'carrierwave'

在尝试保存新记录时,我现在收到以下错误

在 8522 毫秒内完成 500 内部服务器错误

Excon::Errors::SocketError - 错误地址(Errno::EFAULT): excon (0.44.4) lib/excon/errors.rb:17:in initialize' excon (0.44.4) lib/excon/connection.rb:175:inrescue in request_call' excon (0.44.4) lib/excon/connection.rb:101:in request_call' excon (0.44.4) lib/excon/middlewares/mock.rb:47:inrequest_call' excon (0.44.4) lib/excon/middlewares/instrumentor.rb:22:in request_call' excon (0.44.4) lib/excon/middlewares/base.rb:15:inrequest_call' excon (0.44.4) lib/excon/middlewares/base.rb:15:in request_call' excon (0.44.4) lib/excon/middlewares/base.rb:15:inrequest_call' excon (0.44.4) lib/excon/connection.rb:233:in request' excon (0.44.4) lib/excon/middlewares/idempotent.rb:26:inerror_call' excon (0.44.4) lib/excon/middlewares/base.rb:10:in error_call' excon (0.44.4) lib/excon/middlewares/base.rb:10:inerror_call' excon (0.44.4) lib/excon/connection.rb:256:in rescue in request' excon (0.44.4) lib/excon/connection.rb:204:inrequest' excon (0.44.4) lib/excon/middlewares/idempotent.rb:26:in error_call' excon (0.44.4) lib/excon/middlewares/base.rb:10:inerror_call' excon (0.44.4) lib/excon/middlewares/base.rb:10:in error_call' excon (0.44.4) lib/excon/connection.rb:256:inrescue in request' excon (0.44.4) lib/excon/connection.rb:204:in request' excon (0.44.4) lib/excon/middlewares/idempotent.rb:26:inerror_call' excon (0.44.4) lib/excon/middlewares/base.rb:10:in error_call' excon (0.44.4) lib/excon/middlewares/base.rb:10:inerror_call' excon (0.44.4) lib/excon/connection.rb:256:in rescue in request' excon (0.44.4) lib/excon/connection.rb:204:inrequest' 雾核 (1.29.0) lib/fog/core/connection.rb:81:in request' fog-xml (0.1.1) lib/fog/xml/connection.rb:9:inrequest' 雾-aws (0.1.1) lib/fog/aws/storage.rb:587:in `_request'

等等……

【问题讨论】:

  • 我认为带有gem "fog" 的原始版本应该可以工作。可能是配置问题,而不是更广泛的 gem 问题,导致了 Excon 错误。尝试连接到 AWS 时看起来可能是错误,而不是本地错误。
  • 无论我使用雾还是雾-aws,我都会遇到同样的错误。在我们切换到 postgres 并更改为 chruby 之前,它一直在工作
  • 是的。澄清一下,我认为这可能是您的载波配置的具体问题,而不是它周围的宝石和其他东西。不确定,但我会仔细检查您那里的设置。

标签: ruby-on-rails-4 rvm carrierwave fog chruby


【解决方案1】:

在通过 chruby 更新当前版本的 ruby​​ 后进行新的捆绑安装期间,openssl 更改为 1.0.2,这导致了所有问题。切换回 1.0.1 解决了这个问题。

其他人也有同样的问题。 https://github.com/excon/excon/issues/467

我得到了 Codementor 的 Jim 的帮助 https://www.codementor.io/thatrubylove

【讨论】:

    猜你喜欢
    • 2013-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 2014-06-10
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    相关资源
    最近更新 更多