ruby-on-rails - 如何在本地定义环境变量而不更改它们的定义/将它们推送到 heroku?

标签 ruby-on-rails ruby-on-rails-3 amazon-s3 environment-variables

为了将我的应用程序连接到 amazon s3 和其他服务,我必须处理许多凭据。

我使用 s3 启动并运行了我的 heroku 应用程序,它运行良好。我按照以下示例定义了我的 s3 访问凭据:http://devcenter.heroku.com/articles/config-vars

但是,我现在希望能够从我的本地开发环境访问 s3。显然,我在 heroku 上定义的配置变量在我的本地主机上不可用。如何在本地定义这些键?另外,我特别在寻找一种安全的解决方案(例如,如果我在初始化器或其他东西中以纯文本形式定义我的 key ,我不希望该文件被推送到 heroku 上)。

对于背景,这是我添加到模型中以使回形针与 s3 一起运行的内容

 has_attached_file :photo,
:storage => :s3,
:bucket => 'bucket_name',
:s3_credentials => {
  :access_key_id => ENV['S3_KEY'],
  :secret_access_key => ENV['S3_SECRET']
}

最佳答案

定义此类内容的最佳位置,如果您不想共享,可能是初始化程序。

# config/initializers/s3_constants.rb


if Rails.env.development?
  S3_KEY = "mys3key"
  S3_SECRET = "mys3secret"
end

确保将此文件添加到 .gitignore 中,这样它就不会与存储库的其余部分一起推送。

实际上,在每个环境的基础上不同的常量应该真正位于该环境的文件中(例如 development.rb 此处)...但这些文件也应该真正添加到您的版本控制系统中,如果您确定,绝对希望从 git 中排除这些数据,那么您不提交的单独文件可能是您最好的选择。

关于ruby-on-rails - 如何在本地定义环境变量而不更改它们的定义/将它们推送到 heroku?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9415671/

相关文章:

ruby-on-rails - activerecord 枚举和脏属性

javascript - 使用 Ruby on Rails 在 .js 文件中切换/链接到另一个外部样式表

java - 使用 Vert.x 和 Netty 下载大文件时如何处理直接内存不足的情况?

css - 在 div 内部移动以最小化屏幕宽度

css - 无法加载 css 形式 lib/assets 和供应商/assets

ruby-on-rails-3 - 如何使用 factory_girl 模拟和 stub 事件记录 before_create 回调

css - Twitter BootStrap Scrollspy Bug 仍然存在......?

ruby-on-rails - accepts_nested_attributes_for 停止我的子表单渲染?

css - Django CSS 相对路径在 Amazon S3 中不起作用

python - 从 S3 读取 KMS 加密文件