Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 尝试使用部署在Heroku上的Rails、回形针将头像上传到S3时丢失RegionError_Ruby On Rails 4_Heroku_Amazon S3_Paperclip_Aws Sdk - Fatal编程技术网

Ruby on rails 4 尝试使用部署在Heroku上的Rails、回形针将头像上传到S3时丢失RegionError

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

我已经为这个问题挣扎了一天,在网上找不到任何其他帮助。我有一个Rails 4应用程序,我使用AWS S3和回形针gem来托管用户化身。我已经为bucket、访问密钥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 我一直在密切关注这个链接,但仍然不确定为什么会不断出现错误。我也尝试过硬编码“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