我已经在这个问题上挣扎了一天,在网上找不到任何其他的帮助。我有一个Rails4应用程序,其中我正在使用AWS S3和回形针gem来托管用户头像。我已经为存储桶、访问密钥ID、密钥以及区域设置了Heroku配置变量。然而,每当我尝试将图片上传到Heroku应用程序时,我的heroku日志中都会出现这个错误:
Aws::Errors::MissingRegionError (missing region; use :region option or export region name to ENV['AWS_REGION']):在我的production.rb文件中,我有这样的代码:
app/config/environments/production.rb
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控制台中:
irb(main):001:0> ENV['AWS_REGION']
=> "us-west-1"任何帮助都将不胜感激。
发布于 2015-10-03 04:04:06
经过多次试验,我想我解决了这个问题。我所做的主要改变是: 1)在gemfile中使用gem 'aws-sdk', '< 2.0'而不是v2.0。其次,product.rb的这一变化:
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
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/
https://stackoverflow.com/questions/32911932
复制相似问题