错误“未初始化的常量AWS(NameError)". [英] Error "uninitialized constant AWS (NameError)"
问题描述
这是说AWS未初始化.我使用aws-sdk-core宝石.
It is saying AWS is uninitialized. I am usign the aws-sdk-core gem.
我尝试改用aws-sdk gem,但问题仍然存在.
I tried using the aws-sdk gem instead, and the problem was still there.
这是initializers/aws.rb文件:
This is the initializers/aws.rb file:
AWS.config(:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'])
s3 = AWS::S3.new
AVATAR_BUCKET = s3.buckets[ENV['AVATAR_BUCKET_NAME']]
当我尝试运行服务器或打开控制台时,出现此错误:
When I try running the server or opening the console I get this error:
/initializers/aws.rb:1:in'::未初始化的常量AWS(NameError)
/initializers/aws.rb:1:in `': uninitialized constant AWS (NameError)
推荐答案
You might getting this error, because you didn't define the correct aws sdk version in your Gemfile. This can happen while re-bundling old apps with version 1 or 2 installed.
确保要安装哪个版本:
gem 'aws-sdk', '~> 3'
# call sdk
Aws.<whatever>
aws-sdk版本2
gem 'aws-sdk', '~> 2'
# call sdk
Aws.<whatever>
aws-sdk版本1
# version constraint
gem 'aws-sdk', '< 2'
# or
# use the v1 gem
gem 'aws-sdk-v1'
# call sdk
AWS.<whatever>
v1的范围在AWS
之下,而v2和v3的范围在Aws
=>下,这使您可以并行运行v1和v2.
v1 is scoped under AWS
and v2 and v3 scoped under Aws
=> That allows you to run v1 and v2 side by side.
这篇关于错误“未初始化的常量AWS(NameError)".的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!