ruby-on-rails - 雾 OpenSSL 错误

标签 ruby-on-rails ruby amazon-s3 fog

我正在尝试使用雾将文件上传到 S3。我一直在关注在这里找到的雾教程:http://fog.io/storage/但我收到错误。我有什么明显遗漏的东西吗?我的连接对象有效,我可以浏览目录和现有文件。我可以创建一个新的文本文件。但是当我尝试上传 mp3 时,出现 ssh 错误。我很高兴提供有关我的设置的更多信息,我只是不知道相关内容。

当我运行这个 ruby​​ 代码时:

connection.directories[1].files.create(key: 'test.mp3', body: File.open("/path/to/test.mp3"), public: true)

我收到此错误:

Excon::Errors::SocketError: uninitialized constant OpenSSL::OPENSSL_LIBRARY_VERSION (NameError)
from /Users/me/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/gems/excon-0.45.2/lib/excon/socket.rb:245:in `rescue in block in write_nonblock'

我使用的是 ruby​​ 2.0.0-p451

我使用的是 OSX 10.9.5

以下是我的 gemfile 中所有模糊的内容:

fog (1.28.0)
      fog-atmos
      fog-aws (~> 0.0)
      fog-brightbox (~> 0.4)
      fog-core (~> 1.27, >= 1.27.3)
      fog-ecloud
      fog-json
      fog-profitbricks
      fog-radosgw (>= 0.0.2)
      fog-riakcs
      fog-sakuracloud (>= 0.0.4)
      fog-serverlove
      fog-softlayer
      fog-storm_on_demand
      fog-terremark
      fog-vmfusion
      fog-voxel
      fog-xml (~> 0.1.1)
      ipaddress (~> 0.5)
      nokogiri (~> 1.5, >= 1.5.11)
    fog-atmos (0.1.0)
      fog-core
      fog-xml
    fog-aws (0.1.1)
      fog-core (~> 1.27)
      fog-json (~> 1.0)
      fog-xml (~> 0.1)
      ipaddress (~> 0.8)
    fog-brightbox (0.7.1)
      fog-core (~> 1.22)
      fog-json
      inflecto (~> 0.0.2)
    fog-core (1.29.0)
      builder
      excon (~> 0.38)
      formatador (~> 0.2)
      mime-types
      net-scp (~> 1.1)
      net-ssh (>= 2.1.3)
    fog-ecloud (0.0.2)
      fog-core
      fog-xml
    fog-json (1.0.0)
      multi_json (~> 1.0)
    fog-profitbricks (0.0.1)
      fog-core
      fog-xml
      nokogiri
    fog-radosgw (0.0.3)
      fog-core (>= 1.21.0)
      fog-json
      fog-xml (>= 0.0.1)
    fog-riakcs (0.1.0)
      fog-core
      fog-json
      fog-xml
    fog-sakuracloud (1.0.0)
      fog-core
      fog-json
    fog-serverlove (0.1.1)
      fog-core
      fog-json
    fog-softlayer (0.4.1)
      fog-core
      fog-json
    fog-storm_on_demand (0.1.0)
      fog-core
      fog-json
    fog-terremark (0.0.4)
      fog-core
      fog-xml
    fog-vmfusion (0.0.1)
      fission
      fog-core
    fog-voxel (0.0.2)
      fog-core
      fog-xml
    fog-xml (0.1.1)
      fog-core
      nokogiri (~> 1.5, >= 1.5.11)

openssl版本:

openssl
OpenSSL> version
OpenSSL 0.9.8zd 8 Jan 2015

最佳答案

得知您遇到此问题,我们深感抱歉。我们添加了对 openssl 版本的 excon 检查,因为 openssl 的发行版中存在错误(因此我们将其设置为在您遇到该错误进行更新时提供更好的警告/说明)。我们没有意识到在某些情况下可能没有定义这个常量。我已经更新了代码以在常量未定义时跳过检查并发布了 excon 0.45.3,如果您更新到它应该可以避免此问题。

综上所述,我认为还值得注意的是,您拥有的 openssl 版本已经相当过时了(尽管由于向后移植的安全修复程序,可能并不明显如此)。升级到 1.0.1 甚至 1.0.2 系列中的某个版本可能是个好主意(可能使用包管理器,我为此使用自制程序)。这也可能会解决您的问题,但无论如何可能是个好主意。

希望有帮助!

关于ruby-on-rails - 雾 OpenSSL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29752988/

相关文章:

ruby-on-rails - ActiveRecord 关系 : undefined method for nil:NilClass

javascript - 如何在 Javascript 代码中访问 Rails 变量?

ruby-on-rails - 了解保存方法及其返回的内容

ruby - ruby 中的并行分配对于两个等效代码片段的工作方式不同

ruby-on-rails - Rails ActiveRecord 双重关联

ruby-on-rails - 我可以使用相同的 s3 存储桶进行暂存和生产吗?

ruby-on-rails - Heroku *.js 不是预编译错误

php - 如何为 Amazon S3 存储桶的对象创建下载链接?

amazon-s3 - Spark的S3角色授权?

ruby-on-rails - rails : Find relations on relations