Paperclip aws-sdk错误:未初始化的常量

时间:2015-10-09 09:04:47

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

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

老实说,我不确定我还能说些什么呢。我检查了错误日志,以上是唯一的投诉。我是否需要做任何特殊的事情来使用回形针运行v2?感谢任何能够对此事发表任何看法的人。

2 个答案:

答案 0 :(得分:7)

问题写在这里:

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

尝试将您的Gemfile更改为:

  gem 'aws-sdk', '< 2.0'

答案 1 :(得分:3)

在github的一些人的帮助下计算出来。 (See the thread here.)

基本上,回形针4.3.1似乎还不完全支持v2。在它被释放一周之后,一个提交被推送到主服务器,它已经过了这个错误。它似乎并不完美,但这就是我如何使它发挥作用。

您可以使用以下行将此特定修订的paperclip指定给bundler:

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

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

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

如果上述操作不正确,错误信息也会有些混乱:

  

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

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