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 Rails]在开发环境中初始化Fog_Ruby On Rails_Heroku_Carrierwave_Fog - Fatal编程技术网

Ruby on rails Rails]在开发环境中初始化Fog

Ruby on rails Rails]在开发环境中初始化Fog,ruby-on-rails,heroku,carrierwave,fog,Ruby On Rails,Heroku,Carrierwave,Fog,我将rails应用程序部署到Heroku上,并将服务器上的aws访问密钥设置为环境变量。然而,为了在开发环境中测试我的应用程序,我需要在本地机器上的某个地方初始化它们。所以我决定做以下几点 /config/initailizers/init_aws_locally.rb ENV['AWS_ACCESS_KEY_ID'] = 'my key' ENV['AWS_SECRET_ACCESS_KEY'] = 'my secret key' 此文件添加到.gitignore 但是,当我在开发环境中上载

我将rails应用程序部署到Heroku上,并将服务器上的aws访问密钥设置为环境变量。然而,为了在开发环境中测试我的应用程序,我需要在本地机器上的某个地方初始化它们。所以我决定做以下几点

/config/initailizers/init_aws_locally.rb

ENV['AWS_ACCESS_KEY_ID'] = 'my key'
ENV['AWS_SECRET_ACCESS_KEY'] = 'my secret key'
此文件添加到
.gitignore

但是,当我在开发环境中上载时,我收到以下错误消息:

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

我想我忽略了在开发环境中包含aws密钥的一个简单步骤。但我不确定为什么在我已经初始化密钥时会出现错误

作为参考,我使用的是carrierwave、S3和Fog

config/initializers/fog.rb


多谢各位。我感谢你的帮助

我会避免在代码中添加任何凭据。这是一个非常糟糕的想法,而赫罗库的想法是正确的。所以我要做的就是使用RVM并在我的项目文件夹中放置一个文件.rvmrc。我把.rvmrc也放进去了

然后编辑.rvmrc以使

导出AWS\u访问密钥\u ID=“BLAH”

诸如此类。每当我“cd”到这个目录,RVM就会为我的项目设置我的环境。如果你不使用RVM,还有其他的选择

铁轨


它将设置所有的环境变量,您将它们放入.rvmrc脚本中。不需要初始值设定项或仅开发yaml配置文件,这些文件不受源代码控制。根据我的经验,这是最简单的解决办法

我会避免在代码中添加任何凭据。这是一个非常糟糕的想法,而赫罗库的想法是正确的。所以我要做的就是使用RVM并在我的项目文件夹中放置一个文件.rvmrc。我把.rvmrc也放进去了

然后编辑.rvmrc以使

导出AWS\u访问密钥\u ID=“BLAH”

诸如此类。每当我“cd”到这个目录,RVM就会为我的项目设置我的环境。如果你不使用RVM,还有其他的选择

铁轨


它将设置所有的环境变量,您将它们放入.rvmrc脚本中。不需要初始值设定项或仅开发yaml配置文件,这些文件不受源代码控制。根据我的经验,这是最简单的解决办法

您的初始值设定项将按字母顺序运行。见:

如果初始值设定项中存在任何排序依赖项,则可以 通过命名控制加载顺序。例如,01_critical.rb将是 在02_normal.rb之前加载


您遇到的问题是fog.rb初始值设定项在init_aws_local.rb one之前运行(因为f在i之前)。因此,当您设置fog凭据时,尚未定义ENV['AWS\u ACCESS\u KEY\u ID'。

您的初始值设定项将按字母顺序运行。见:

如果初始值设定项中存在任何排序依赖项,则可以 通过命名控制加载顺序。例如,01_critical.rb将是 在02_normal.rb之前加载


您遇到的问题是fog.rb初始值设定项在init_aws_local.rb one之前运行(因为f在i之前)。因此,在设置fog凭据时,尚未定义ENV['AWS\u ACCESS\u KEY\u ID']。

我转到shell并键入:

$echo$AWS\u密码\u访问\u密钥


结果是一片空白。事实证明,我最近移动到了一个新的虚拟机,并忘记将其添加到.bashrc文件中。为了以防万一,值得检查shell环境。一旦我将这两行代码添加到.bashrc中,一切都很愉快。

我转到shell并键入:

$echo$AWS\u密码\u访问\u密钥


结果是一片空白。事实证明,我最近移动到了一个新的虚拟机,并忘记将其添加到.bashrc文件中。为了以防万一,值得检查shell环境。一旦我将这两行代码添加到我的.bashrc中,一切都很愉快。

上传到您的开发中?所以你不是在本地机器上开发?什么是你们的开发操作系统?在开发环境中上传,我的意思是发布一篇带有附件的文章。上传到你们的开发环境?所以你不是在本地机器上开发?你们的开发操作系统是什么?在开发环境中上传,我的意思是发布一篇带有附件的文章。太好了。这似乎是一个很好的解决办法。但我仍然很好奇为什么我的方法不起作用。你有这个想法吗?太好了。这似乎是一个很好的解决办法。但我仍然很好奇为什么我的方法不起作用。你对此有什么想法吗?这是我的错误fog/core/service的解决方案。rb:234:in'validate\u options':缺少必需的参数:aws\u access\u key\id,aws\u secret\u access\u key(ArgumentError)这是我的错误fog/core/service的解决方案。rb:234:in'validate\u options':缺少必需的参数:aws\u access\u key\id,aws\u secret\u access\u key\u key\u key(错误)
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
    :region                 => 'us-east-1',                  # optional, defaults to 'us-east-1'
  }
  config.fog_directory  = 'd'                         # required
  config.fog_public     = true                                # optional, defaults to true
end