ruby-on-rails - 服务器环境变量应该存储在 Ruby on Rails 中的哪里?

标签 ruby-on-rails

我应该在哪里存储特定于我的 ruby​​ 项目中的开发、测试、生产服务器的 key ?例如,应该在哪里存储我的开发特定的 amazon s3 secret 和 key ?我的 config/development.rb 文件?我看到的一个问题是,如果该文件是公共(public) github 项目的一部分,它会向所有人显示。 谢谢!

最佳答案

您分别将单独的环境变量存储在 config/development.rbconfig/testing.rbconfig/development.rb 中。

但是,如果您的文件将存储在公共(public) git 存储库中,您不希望将任何敏感信息硬编码到其中。最好的方法是使用 .gitignore 中的 yaml 文件或使用 shell 中的环境变量。我更喜欢后者,如下所示:

PAPERCLIP_OPTIONS = { storage:          :s3,
                      bucket:           ENV['S3_BUCKET'],
                      s3_credentials: { access_key_id: ENV['S3_KEY'],
                                        secret_access_key: ENV['S3_SECRET'] }}

然后,您只需在运行应用程序的系统上设置环境变量即可。

如果您使用 yaml 配置文件方法,则必须将敏感配置文件添加到 .gitignore 文件。否则它们仍会上传到您的公共(public)存储库。

关于ruby-on-rails - 服务器环境变量应该存储在 Ruby on Rails 中的哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10357624/

相关文章:

ruby-on-rails - SocketError:没有这样的文件或目录-/var/run/docker.sock的connect(2)

ruby-on-rails - 在 Rails 应用程序中发出非阻塞 HTTP 请求

css - content_for Rails 4 未加载

ruby-on-rails - 测试 XML 和 HTTP 响应的 RSpec 方法?

ruby-on-rails - 文件上传的 MIME 类型为 "application/x2x-download"- 那是什么?

ruby-on-rails - 如何修复Error : “Sass::SyntaxError in Posts#index” in Ruby on Rails?

ruby-on-rails - ActiveRelation 将如何影响 rails 的 includes() 功能?

ruby-on-rails - json post 来设计原因 422/不可处理的实体

ruby-on-rails - 样式表或 JavaScript 文件的 Rails 404 错误

ruby-on-rails - RoR - collection_select 从数组