Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/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 使用载波和S3时无法在heroku中部署_Ruby On Rails_Heroku_Amazon S3 - Fatal编程技术网

Ruby on rails 使用载波和S3时无法在heroku中部署

Ruby on rails 使用载波和S3时无法在heroku中部署,ruby-on-rails,heroku,amazon-s3,Ruby On Rails,Heroku,Amazon S3,我是rails的新手 现在使用ruby和rails教程。在其中一节中,我们使用载波和AWS S3进行照片存储 在heroku中部署时,会出现如下错误: ArgumentError:缺少必需的参数:aws\u访问\u密钥\u id、aws\u机密\u访问\u密钥 我在carrir_wave.rb上写下如下内容: if Rails.env.production? CarrierWave.configure do |config| config.fog_credentials = {

我是rails的新手

现在使用ruby和rails教程。在其中一节中,我们使用载波和AWS S3进行照片存储

在heroku中部署时,会出现如下错误:

ArgumentError:缺少必需的参数:aws\u访问\u密钥\u id、aws\u机密\u访问\u密钥

我在carrir_wave.rb上写下如下内容:

if Rails.env.production?
  CarrierWave.configure do |config|
    config.fog_credentials = {
      # Configuration for Amazon S3
      :provider              => 'AWS',
      :aws_access_key_id     => ENV['******************'],
      :aws_secret_access_key => ENV['*************************']
      }
    config.fog_directory     =  ENV['*******************']
  end
end
当我在终端运行我的测试时,所有的测试都很好

我一直通过以下方式在heroku上设置凭据:

$ heroku config:set S3_ACCESS_KEY=<access key>
$ heroku config:set S3_SECRET_KEY=<secret key>
$ heroku config:set S3_BUCKET=<bucket name>
$heroku配置:设置S3\u访问\u键=
$heroku配置:设置S3\u密钥=
$heroku配置:设置S3_存储桶=

非常感谢您的帮助。

在config/initializers文件夹中创建一些carrierwave.rb文件,并将下面的代码片段放在carrierwave.rb文件中

CarrierWave.configure do |config|
  config.fog_credentials = {
    provider:              'AWS',                          # required
    aws_access_key_id:     ENV['AWS_ACCESS_KEY_ID'],       # required
    aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']    # required
  }
  config.fog_directory  =  ENV['S3_BUCKET_NAME']                # required
end
并将以下键的值放入项目文件夹中的某个.env文件中 1) AWS\u访问\u密钥\u ID 2) AWS\u密码\u访问\u密钥 3) S3_BUCKET_名称


然后从终端重新运行服务器

在config/initializers文件夹中创建一些carrierwave.rb文件,并将以下代码片段放入carrierwave.rb文件中

CarrierWave.configure do |config|
  config.fog_credentials = {
    provider:              'AWS',                          # required
    aws_access_key_id:     ENV['AWS_ACCESS_KEY_ID'],       # required
    aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']    # required
  }
  config.fog_directory  =  ENV['S3_BUCKET_NAME']                # required
end
并将以下键的值放入项目文件夹中的某个.env文件中 1) AWS\u访问\u密钥\u ID 2) AWS\u密码\u访问\u密钥 3) S3_BUCKET_名称

然后从终端重新运行服务器