为了账号安全,请及时绑定邮箱和手机立即绑定

如何访问 Golang 项目的 JSON 文件中的环境变量?

如何访问 Golang 项目的 JSON 文件中的环境变量?

Go
HUH函数 2022-05-23 16:32:37
我的团队正在使用 Golang 进行编码,我们将所有配置放在一个conf.json有趣的部分中,如下所示,另一个config_schema.json文件用于 json 验证。{"host": "192.168.0.34","port": "5678","username": "test_user","password": "random_pass","dbName": "dummy"}我的问题是,我可以定义环境变量 .eg $USER 和 $PASS 并按如下方式使用它们还是出于安全目的有适当的方法来实现这一点?{"host": "192.168.0.34","port": "5678","username": "$USER","password": "$PASS","dbName": "dummy"}
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

由于问题已经存在 1 年,可能为时已晚但您可以结合使用https://golang.org/pkg/os/#ExpandEnv 和https://golang.org/pkg/encoding/json/#Unmarshaler

为了使用 Unmarshaler,你应该有一个struct对应于你的 json。然后您可以覆盖默认方法并仅替换您想要的字段。更简单的示例如下所示

result := os.ExpandEnv(jsonString)

现场示例: https: //play.golang.org/p/78C2zyYP6vL


查看完整回答
反对 回复 2022-05-23
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

我们最终使用了 env var,并在 Gitlab CI 环境变量中定义了用户名和密码,并启用了掩码,这样它们就不会显示在日志中。



查看完整回答
反对 回复 2022-05-23
  • 2 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信