ruby-on-rails – 如何在本地定义环境变量而不更改其定义/将它们
发布时间:2020-12-16 19:22:35 所属栏目:百科 来源:网络整理
导读:我有许多凭据,我必须处理,以便将我的应用程序连接到亚马逊s3和其他服务. 我得到了我的heroku应用程序并运行s3,它运行良好.我按照此示例定义了我的s3访问凭据:http://devcenter.heroku.com/articles/config-vars 但是,我现在希望能够从本地开发环境访问s3.显
我有许多凭据,我必须处理,以便将我的应用程序连接到亚马逊s3和其他服务.
我得到了我的heroku应用程序并运行s3,它运行良好.我按照此示例定义了我的s3访问凭据:http://devcenter.heroku.com/articles/config-vars 但是,我现在希望能够从本地开发环境访问s3.显然,我在heroku上定义的配置变量在我的localhost上不可用.如何在本地定义这些密钥?此外,我正在寻找一个安全的解决方案(例如,如果我在一个初始化器或其他东西中以纯文本形式定义我的密钥,我不希望该文件被推送到heroku). 对于背景,这是我添加到模型中以使用s3运行paperclip的内容 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中排除这些数据,然后你不提交的单独文件可能是你最好的选择. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |