Clojure 数据库凭据和leiningen?

Clojure 数据库凭据和leiningen?,clojure,leiningen,amazon-elastic-beanstalk,Clojure,Leiningen,Amazon Elastic Beanstalk,我正在开发clojure web应用程序,使用leiningen 2进行构建和部署。这是一个非常普通的网络应用程序,我使用的是compojure、ring和lein beanstalk。我的应用程序需要同时使用数据库凭据和S3凭据,我不确定在我的应用程序中存储和访问它们的最佳方式 使用leiningen 2处理数据库凭据等敏感内容的常用方法是什么 我可以在elastic beanstalk上设置环境变量,但如果可能的话,我希望避免这种做法。我非常喜欢使用环境变量来跟踪可变环境。;-) 其他人使用

我正在开发clojure web应用程序,使用leiningen 2进行构建和部署。这是一个非常普通的网络应用程序,我使用的是compojure、ring和lein beanstalk。我的应用程序需要同时使用数据库凭据和S3凭据,我不确定在我的应用程序中存储和访问它们的最佳方式

使用leiningen 2处理数据库凭据等敏感内容的常用方法是什么


我可以在elastic beanstalk上设置环境变量,但如果可能的话,我希望避免这种做法。

我非常喜欢使用环境变量来跟踪可变环境。;-)


其他人使用
-Ddb=foo
选项传递它们,并使用
(System/getProperty“db”)
两种方法读取它们。一种是使用环境变量,如果您的所有配置值都是字符串,并且不需要任意嵌套,那么这很好。您在这里的最佳选择是环境:


另一个不错的选择是从类路径读取Clojure数据文件。您可以使用
dev resources
dir将dev config设置检查到项目中,并使用部署工具将生产配置放在类路径上。这里的优点是,您的配置可以是带有嵌套映射的任意Clojure值,等等。最好的是Carica:

看看Confijulate—我创建的一个库,用于实现此模式:


您可以将密码或密钥存储在外部文件中,并通过系统属性将其加载。在连接到S3或dB的函数中,可以使用通过相同机制加载的密钥对其进行解密。只需确保您读入的文件仅由web用户(tomcat或jboss或您与beanstalk一起使用的任何容器)读取即可

谢谢你,环境正是我所需要的!再次感谢莱恩,这太棒了