Ruby on rails 4 尝试使用部署在Heroku上的Rails、回形针将头像上传到S3时丢失RegionError
我已经为这个问题挣扎了一天,在网上找不到任何其他帮助。我有一个Rails 4应用程序,我使用AWS S3和回形针gem来托管用户化身。我已经为bucket、访问密钥ID、密钥以及区域设置了Heroku配置变量。但是,每当我尝试在Heroku应用程序上上载图片时,我的Heroku日志中总是出现此错误:Ruby on rails 4 尝试使用部署在Heroku上的Rails、回形针将头像上传到S3时丢失RegionError,ruby-on-rails-4,heroku,amazon-s3,paperclip,aws-sdk,Ruby On Rails 4,Heroku,Amazon S3,Paperclip,Aws Sdk,我已经为这个问题挣扎了一天,在网上找不到任何其他帮助。我有一个Rails 4应用程序,我使用AWS S3和回形针gem来托管用户化身。我已经为bucket、访问密钥ID、密钥以及区域设置了Heroku配置变量。但是,每当我尝试在Heroku应用程序上上载图片时,我的Heroku日志中总是出现此错误: Aws::Errors::MissingRegionError (missing region; use :region option or export region name to ENV['A
Aws::Errors::MissingRegionError (missing region; use :region option or export region name to ENV['AWS_REGION']):
在我的production.rb文件中,我有以下代码:
app/config/environments/production.rb
我一直在密切关注这个链接,但仍然不确定为什么会不断出现错误。我也尝试过硬编码“us-west-1”,但这不起作用
在heroku控制台中:
irb(main):001:0> ENV['AWS_REGION']
=> "us-west-1"
任何帮助都将不胜感激。经过多次尝试,我想我解决了这个问题。我所做的主要更改是1使用gem'awsdk',在gem文件中使用“<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
如果任何人仍有问题,那么以下链接可能会帮助您:
config.paperclip_defaults = {
storage: :s3,
:s3_credentials => {
bucket: ENV['AWS_BUCKET'],
:s3_credentials => "#{Rails.root}/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