Paperclip aws-sdk error: uninitialized constant

Paperclip aws-sdk error: uninitialized constant

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

老实说,我不确定我还能说些什么。我检查了错误日志,上面是它唯一的抱怨。我需要用回形针对 运行 v2 做些特别的事吗?感谢任何能对此事有所启发的人。

问题写在这里:

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

尝试将您的 Gemfile 更改为:

  gem 'aws-sdk', '< 2.0'

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

基本上paperclip 4.3.1似乎还没有完全支持v2。在它发布大约一周后,一个提交被推送到 master 来解决这个错误。它似乎并不完美,但我是这样实现的。

您可以使用以下行将此回形针的特定版本指定为捆绑器:

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

可以找到有关此类事情的更多信息here.

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

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

missing region; use :region option or export region name to ENV['AWS_REGION']

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