为了将我的应用程序连接到 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/