bez*_*oon 38 ruby-on-rails amazon-s3 amazon-web-services ruby-on-rails-4 aws-sdk-ruby
这是说AWS未初始化.我使用了aws-sdk-core gem.
我尝试使用aws-sdk gem,问题仍然存在.
这是initializers/aws.rb文件:
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']]
Run Code Online (Sandbox Code Playgroud)
当我尝试运行服务器或打开控制台时,我收到此错误:
/initializers/aws.rb:1:in`':未初始化的常量AWS(NameError)
DrS*_*ork 24
您需要安装/使用该-v1版本aws-sdk.只需做gem 'aws-sdk'或require 'aws-sdk'可能使用2.x版本aws-sdk.
为避免混淆,对于需要1.x的脚本,请使用:
require 'aws-sdk-v1' # not 'aws-sdk'
Run Code Online (Sandbox Code Playgroud)
对于需要2.x的脚本,请使用:
gem 'aws-sdk', '~> 2'
Run Code Online (Sandbox Code Playgroud)
正如GitHub文档所示.
Sim*_*zen 11
您可能会收到此错误,因为您没有在Gemfile中定义正确的aws sdk版本.在重新捆绑安装了版本1或2的旧应用程序时可能会发生这种情况.
确保要安装的版本:
gem 'aws-sdk', '~> 3'
# call sdk
Aws.<whatever>
Run Code Online (Sandbox Code Playgroud)
gem 'aws-sdk', '~> 2'
# call sdk
Aws.<whatever>
Run Code Online (Sandbox Code Playgroud)
# version constraint
gem 'aws-sdk', '< 2'
# or
# use the v1 gem
gem 'aws-sdk-v1'
# call sdk
AWS.<whatever>
Run Code Online (Sandbox Code Playgroud)
v1的作用域是在AWSv2和v3作用域下Aws=>这允许你并排运行v1和v2.
听起来好像宝石不存在于您的加载路径中或者不是必需的.
你的入口Gemfile应该是
gem 'aws-sdk'
Run Code Online (Sandbox Code Playgroud)
require 'aws-sdk'只要您使用bundle exec rails server或启动应用程序,这将隐式执行应用程序初始化bundle exec rails console.
或者,如果上面的代码在非rails应用程序中,则只需放在require 'aws-sdk'第一行.
| 归档时间: |
|
| 查看次数: |
26480 次 |
| 最近记录: |