【问题标题】:Paperclip aws-sdk error: uninitialized constant回形针 aws-sdk 错误:未初始化的常量
【发布时间】:2017-04-04 12:54:50
【问题描述】:

当我尝试将文件上传到我的服务器时,我目前遇到了uninitialized constant Paperclip::Storage::S3::AWS 错误。我知道这通常是由运行旧版本的回形针引起的,然后他们添加了对 aws-sdk-v2 的支持。奇怪的是,我正在运行最新的回形针版本 (4.3.1),according to its github page 包括 aws-sdk-v2 支持。

老实说,我不确定我还能说些什么。我检查了错误日志,上面是它唯一的抱怨。我需要做一些特别的事情来使用回形针运行 v2 吗?感谢任何可以为这件事提供任何启示的人。

【问题讨论】:

    标签: ruby-on-rails amazon-web-services paperclip aws-sdk


    【解决方案1】:

    问题写在这里:

    http://ruby.awsblog.com/post/TxFKSK2QJE6RPZ/Upcoming-Stable-Release-of-AWS-SDK-for-Ruby-Version-2

    尝试将您的 Gemfile 更改为:

      gem 'aws-sdk', '< 2.0'
    

    【讨论】:

    • 感谢您的回复。但是重点是我想使用 v2 并且(根据回形针的 github 页面)这应该在大约一个月前发布的 4.3.1 版本中得到解决。
    • 我认为对 aws-sdk v2 的支持直到 Paperclip v5 才发布
    【解决方案2】:

    在 github 上的一些人的帮助下解决了这个问题。 (See the thread here.)

    基本上,回形针 4.3.1 似乎还不完全支持 v2。在它发布一周左右后,一个提交被推送到了通过这个错误的主节点。它似乎并不完美,但我是这样做的。

    您可以使用以下行指定此特定版本的回形针到 bundler:

    gem 'paperclip', :git=> 'https://github.com/thoughtbot/paperclip', :ref => '523bd46c768226893f23889079a7aa9c73b57d68'
    

    关于这类事情的更多信息可以找到here.

    您需要在回形针默认值中指定您的地区。这可以通过将:s3_region=&gt; 'us-west-2'(或您所在地区的任何地区)放入您的paperclip_defaults 来完成。仅仅指定端点或主机是不够的。你可以查查你的here.

    如果上述操作没有正确完成,错误消息也会有点令人困惑:

    缺失区域;使用 :region 选项或将区域名称导出到 ENV['AWS_REGION']

    1. 我无法使用推荐的环境变量。
    2. :region 选项有些误导,因为它需要写成:s3_region

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-04
      • 2014-05-14
      • 2013-08-21
      • 2012-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多