go 读取.ini配置文件

news/2024/11/15 18:21:45/文章来源:https://www.cnblogs.com/moon3496694/p/18548444

安装所需的库

go get gopkg.in/ini.v1

 

我这里集成到gin中配合之前的解密一起使用

package confimport ("fmt""gin__tte/utils/encryption""log""gopkg.in/ini.v1"
)const SERVER_NAME = "gin_system"var (SECRET       stringMODE         stringRUNPORT      stringSTORAGE_TYPE stringMYSQL_USER     stringMYSQL_PWD      stringMYSQL_HOST     stringMYSQL_PORT     stringMYSQL_DATABASE stringREDIS_HOST    stringREDIS_PORT    stringREDIS_PWD     stringREDIS_LIBRARY intMINIO_HOST   stringMINIO_PORT   stringMINIO_USER   stringMINIO_PWD    stringMINIO_BUCKET stringMINIO_SECURE boolCOS_SECRET_ID  stringCOS_SECRET_KEY stringCOS_REGION     stringCOS_SCHEME     stringCOS_BUCKET     stringCOS_DOMAIN     string
)func init() {conf, err := ini.Load("config.ini")if err != nil {fmt.Println("配置文件读取错误,请检查文件路径:", err)log.Fatalln("配置文件读取错误,请检查文件路径")}SECRET = conf.Section("serve").Key("secret").MustString("123456")MODE = conf.Section("serve").Key("mode").MustString("debug")RUNPORT = conf.Section("serve").Key("port").MustString("0.0.0.0:8080")STORAGE_TYPE = conf.Section("serve").Key("storage").MustString("minio")MYSQL_HOST = conf.Section("mysql").Key("host").MustString("127.0.0.1")MYSQL_PORT = conf.Section("mysql").Key("port").MustString("3306")MYSQL_USER = conf.Section("mysql").Key("user").MustString("")MYSQL_PWD = conf.Section("mysql").Key("password").MustString("")MYSQL_DATABASE = conf.Section("mysql").Key("database").MustString("")REDIS_HOST = conf.Section("redis").Key("host").MustString("127.0.0.1")REDIS_PORT = conf.Section("redis").Key("port").MustString("6379")REDIS_PWD = conf.Section("redis").Key("password").MustString("")REDIS_LIBRARY = conf.Section("redis").Key("library").MustInt(0)MINIO_HOST = conf.Section("minio").Key("host").MustString("127.0.0.1")MINIO_PORT = conf.Section("minio").Key("port").MustString("9000")MINIO_USER = conf.Section("minio").Key("user").MustString("")MINIO_PWD = conf.Section("minio").Key("password").MustString("")MINIO_BUCKET = conf.Section("minio").Key("bucket").MustString("")MINIO_SECURE = conf.Section("minio").Key("secure").MustBool(false)COS_SECRET_ID = conf.Section("cos").Key("secret_id").MustString("")COS_SECRET_KEY = conf.Section("cos").Key("secret_key").MustString("")COS_REGION = conf.Section("cos").Key("region").MustString("")COS_SCHEME = conf.Section("cos").Key("scheme").MustString("")COS_BUCKET = conf.Section("cos").Key("bucket").MustString("")COS_DOMAIN = conf.Section("cos").Key("domain").MustString("")MYSQL_USER = encryption.GetDataAes(SECRET, MYSQL_USER)REDIS_PWD = encryption.GetDataAes(SECRET, REDIS_PWD)MYSQL_PWD = encryption.GetDataAes(SECRET, MYSQL_PWD)// MINIO_USER = encryption.GetDataAes(SECRET, MINIO_USER)// MINIO_PWD = encryption.GetDataAes(SECRET, MINIO_PWD)if MYSQL_USER == "" || MYSQL_PWD == "" || REDIS_PWD == "" {log.Fatalln("配置文件解密错误,请检查文件")}}

 

我的ini文件

[serve]
secret = R1546eOPjJzXwYoGC0rxIONR
mode = debug
port = 0.0.0.0:8081
storage = minio[mysql]
host = 192.168.1.123
port = 3306
user = HDqnWhtu8Zyuv8OXShf27Q==
password = BKuhzXY4VmElqJG1Annvjw==
database = gin_tte[redis]
host = 192.168.1.123
port = 6379
password = 54vFJmKuP4MGYBH6oG72dg==
library = 1[minio]
host = 192.168.1.123
port = 9000
user = ZVF8VV2KKWH687VZ41MY
password = Vya75gyOQmAWnNKVkuLvwendrpaJDswK0LinK
bucket = media
secure = false[cos]
secret_id = 你的SecretID
secret_key = 你的SecretKey
region = 你的region在go中好像没有用到
scheme = https
bucket = 你的bucket在go中好像没有用到
domain = 你的domain自定义域名访问

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/834146.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

团队项目Scrum冲刺-day5

一、每天举行站立式会议 站立式会议照片一张昨天已完成的工作成员 任务陈国金 判题机架构设计凌枫 整合代码编辑器陈卓恒 更新题目界面部分完成谭立业 浏览题目页面部分完成廖俊龙 接口测试曾平凡 前端页面测试曾俊涛 判题服务薛秋昊 判题服务今天计划完成的工作成员 任务陈国金…

js原型链污染

js原型链污染 原理介绍 对于语句:object[a][b] = value 如果可以控制a、b、value的值,将a设置为__proto__,我们就可以给object对象的原型设置一个b属性,值为value。这样所有继承object对象原型的实例对象在本身不拥有b属性的情况下,都会拥有b属性,且值为value。 可以通过…

基于米尔NXP i.MX93开发板OpenCV的相机捕捉视频进行人脸检测

本篇测评由优秀测评者“eefocus_3914144”提供。 本文将介绍基于米尔电子MYD-LMX93开发板(米尔基于NXP i.MX93开发板)的基于OpenCV的人脸检测方案测试。 OpenCV提供了一个非常简单的接口,用于相机捕捉一个视频(我用的电脑内置摄像头)1、安装python3-opencvapt install pyth…

hbase-2.2.7分布式搭建文档(附详细操作步骤命令及相关操作截图)

hbase-2.2.7分布式搭建文档 一,搭建前准备 1.检查是否已经安装JDK 2.搭建hbase前需要先搭建好hadoop 3.检查zookeeper是否正常启动 #启动zookeeper(三台都要启动) zkServer.sh start#查看zookeeper状态(一个leader两个follower) zkServer.sh status4.到官网或国内镜像站下载hb…

自动化构建镜像:Packer

在介绍Packer之前,先来回顾一下未使用Packer时自定义虚拟机镜像的步骤。先在本地启动一个虚拟机,从安装系统开始,再进行自定义配置或应用安装,最后封装压缩成镜像,详细操作步骤可以参考我之前写的文档,制作Centos 7镜像:https://robin-2016.github.io/2019/04/08/制作op…

牛逼!字节 IDE 来了!!

前言 大家好,我是R哥。 最近做面试辅导,很多同学和我抱怨说,去 XX 公司面试,刚进公司,面试官还没有见着呢,就让我先手撕两道算法题,做不出来的话直接 GG。 没错,如果你想拿一份还不错的收入,想去中大厂,特别是字节、阿里、腾讯这些一线大厂,面试前都会有一次算法笔试…

虚拟串口工具和串口调试工具详解 - 附下载地址

简介 串口开发过程中, 一般需要以下工具用于开发和调试:虚拟串口工具简介 虚拟串口软件, 可以在系统中虚拟出串口, 这样开发人员可以在没有物理串口设备的情况下进行开发. 串口调试工具简介 串口调试工具主要用于给串口发送信息, 测试串口是否连通, 发送消息是否正常被接收等.本…

怎么用云游戏玩Steam?ToDesk云电脑新手入门教程

对于新手玩家来说,想要上手Steam游戏,这门槛真有点高。不说要从众多真假难辨的软件中找出正版,遇到Steam内想玩的游戏还得等着下载安装解压,费时又费力。玩家想解决这个困难也很简单,只需下个ToDesk云游戏即可。它是ToDesk云电脑中专门玩游戏的版块,预安装了上百款热门游…

Vuex与Redux比较

由于Vuex和Redux都是从Flux中衍生出来,同时Vuex对Redux部分思想也有一些借鉴,所以Vuex和Redux有很多相同点。很多资料也有介绍两者的对比,但大部分讲解的比较抽象,较难理解。笔者整理两者异同点,同时配有标准案例进行说明。注意本文不是科普vuex和redux相关概念,相关知识…

第6篇 Scrum 冲刺博客

作业要求这个作业属于哪个课程 计科34班这个作业的要求在哪里 团队作业4——项目冲刺这个作业的目标 1.站立式会议2.发布项目燃尽图3.每人的代码/文档签入记录4.适当的项目程序/模块的最新(运行)截图5.每日每人总结会议照片昨日已完成的工作/今天计划完成的工作成员 昨天已完…

RabbitMQ 五种模式

RabbitMQ是一种常用的消息队列服务,它提供了五种消息模型:简单模型、工作队列模型、发布/订阅模型、路由模型、主题模型。1. 简单模型(Simple Message Queue,简称SQS):一个生产者,一个消费者,一个队列。 2. 工作队列模型(Work Queue):多个消费者共同处理一个队列中的…

如何防止手机被远程控制,安全远控推荐ToDesk

随着电子设备及各样应用的兴起,手机可以为人们带来的便利已越来越多,从二十年前的联络通话,到现如今的社交娱乐、导航、缴费等;通过智能手机中的软件均可轻松实现。 然而虽然手机的妙用有很多,但对于一些不太善用电子设备的中老年亲友来说,在使用中却也存在一定的被诈骗风…