首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用Rails将头像上传到S3时的MissingRegionError,部署在Heroku上

尝试使用Rails将头像上传到S3时的MissingRegionError,部署在Heroku上
EN

Stack Overflow用户
提问于 2015-10-03 00:43:37
回答 1查看 166关注 0票数 0

我已经在这个问题上挣扎了一天,在网上找不到任何其他的帮助。我有一个Rails4应用程序,其中我正在使用AWS S3和回形针gem来托管用户头像。我已经为存储桶、访问密钥ID、密钥以及区域设置了Heroku配置变量。然而,每当我尝试将图片上传到Heroku应用程序时,我的heroku日志中都会出现这个错误:

代码语言:javascript
复制
Aws::Errors::MissingRegionError (missing region; use :region option or export region name to ENV['AWS_REGION']):

在我的production.rb文件中,我有这样的代码:

app/config/environments/production.rb

代码语言:javascript
复制
config.paperclip_defaults = {
    storage: :s3,
    region: ENV['AWS_REGION'],
    s3_credentials: {
      bucket: ENV['AWS_BUCKET'],
      access_key_id: ENV['AWS_ACCESS_KEY_ID'],
      secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
    }
  }

我已经密切关注了这个链接(https://devcenter.heroku.com/articles/paperclip-s3),但仍然不确定为什么我一直收到这个错误。我也尝试过对'us-west-1'进行硬编码,但这不起作用。

在heroku控制台中:

代码语言:javascript
复制
irb(main):001:0> ENV['AWS_REGION']
=> "us-west-1"

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2015-10-03 04:04:06

经过多次试验,我想我解决了这个问题。我所做的主要改变是: 1)在gemfile中使用gem 'aws-sdk', '< 2.0'而不是v2.0。其次,product.rb的这一变化:

代码语言:javascript
复制
  config.paperclip_defaults = {
    storage: :s3,
    :s3_credentials => {
      bucket: ENV['AWS_BUCKET'],
      :s3_credentials => "#{Rails.root}/config/aws.yml",
    }
  }

以及aws-sdk寻找的aws.yml的创建:

app/config/aws.yml

代码语言:javascript
复制
development:
  access_key_id: AWS_ACCESS_KEY_ID
  secret_access_key: AWS_SECRET_ACCESS_KEY

production:
  access_key_id: AWS_ACCESS_KEY_ID
  secret_access_key: AWS_SECRET_ACCESS_KEY

如果任何人仍然有问题,那么点击这个链接可能会对你有所帮助:http://www.korenlc.com/rails-uploading-photos-via-amazon-s3-and-paperclip/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32911932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档