我正在尝试在我的服务启动时从系统环境中加载密码和敏感数据。我尝试了许多不同的方法,但好像无法找到在Rust中正确的方法。
const PASSWORD: String = var("PASSWORD").unwrap();
无法工作,因为常量中的方法调用仅限于常量固有方法
。这同样适用于静态方法
(除了错误明显说了静态)。
我看到的另一种方法是
const PASSWORD: &'static str = env!("PASSWORD");
但问题在于,因为env!
是一个宏(至少我是这样理解的),所以它将在编译时被定义。
我也考虑过简单地将对var("...").unwrap()
的调用封装在一个函数中,但这个解决方案并不完全符合我的要求,而且还允许值在运行时更改,并且不会在服务启动时进行验证。
正如您所看到的,我对Rust还很陌生。如果您能在回答中不仅解释如何在运行时加载const/static,而且还解释我正在做的事情有什么错误和愚蠢之处,我将不胜感激 :)
ref
:static ref PASSWORD: String = var("PASSWORD").unwrap();
- Rokit