首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Go之Viper

对于位于用户$HOME目录中的配置文件没有任何扩展名,如.bashrc; 当你使用如下方式读取配置时,viper会从./conf目录下查找任何以config为文件名的配置文件,如果同时存在....不会覆盖给定的文件(如果它存在的话); 根据经验,标记为safe的所有方法都不会覆盖任何文件,而是直接创建(如果不存在),而默认行为是创建或截断: viper.WriteConfig() // 将当前配置写入...具体来说,Viper支持Cobra库中使用的Pflag; 与BindEnv类似,该值不是在调用绑定方法时设置的,而是在访问该方法时设置的。...(译注:也就是说Viper加载配置值的优先级为:磁盘上的配置文件>命令行标志位>环境变量>远程Key/Value存储>默认值。)...管理配置 这里用一个demo演示如何在gin框架搭建的web项目中使用viper,使用viper加载配置文件中的信息,并在代码中直接使用viper.GetXXX()方法获取对应的配置值; package

6.4K101

viper 源码分析

提供一种机制来为通过命令行标志指定的选项设置覆盖值。 提供别名系统,轻松重命名参数,而不会破坏现有代码。 可以很容易地区分用户提供命令行或配置文件与默认值相同的时间。 Viper使用以下优先顺序。...当您明确提供ENV变量名称时,它不会自动添加前缀。 使用ENV变量时要认识到的一件重要事情是每次访问时都会读取该值。Viper在BindEnv调用时不会修复该值。...就像BindEnv,在调用绑定方法时,不会设置该值。这意味着您可以尽早绑定,甚至可以在init()函数中绑定 。 对于单个标志,该BindPFlag()方法提供此功能。.../remote 包进行空白导入: import _ "github.com/spf13/viper/remote" Viper将读取key/value存储(如etcd或Consul)中的路径检索的配置字符串...每个都可以从不同的配置文件,键值存储等中读取.viper包支持的所有功能都被镜像为viper上的方法。

99720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Git常用命令

    / 指定本地库名字为test git clone https://github.com/jquery/jquery.git test // git clone的仓库地址支持多种协议,通常使用最多的是http...git remote show 远程库别名> // 添加新的远程库 git remote add 远程库别名> // 删除远程库 git remote rm 远程库别名> //...git add git add [参数] 路径>用于将工作区的文件添加到暂存区,可以多次使用git add命令将文件添加到暂存区中。暂存区中的文件可以通过git commit一次性提交到本地仓库。...1 2 3 4 5 6 7 8 9 10 // 将当前路径下修改的文件以及新增的文件添加到暂存区,不包括被删除的文件 git add . // 将当前路径下修改的文件和被删除的文件添加到暂存区...或者可以使用--force参数,强制覆盖掉远程分支,但是一般不建议这样做。 此外,git push不会推送tag,除非添加--tags参数。

    38420

    Golang 语言怎么使用 Viper 管理配置信息?

    提供一种机制来为您的不同配置选项设置默认值。 提供一种机制来通过命令行参数覆盖指定的选项的值。 提供别名系统,以在不会破坏现有代码的情况下轻松重命名参数。...如果存在,不会覆盖给定文件。 根据经验,所有标有 safe 标记的方法都不会覆盖任何文件,而是直接创建(如果不存在),而默认行为是创建或截断。...具体来说,viper 支持 Cobra 库中使用的 Pflags。 与 BindEnv 一样,在调用绑定方法时,不会设置该值,而是在访问绑定方法时设置该值。...将读取从 Key/Value 存储(例如 etcd 或 Consul )中的路径检索到的配置字符串(如JSON,TOML,YAML,HCL 或 envfile)。...crypt 默认使用在 http://127.0.0.1:4001 上的 etcd。

    6.4K40

    Git 中文参考(一)

    GIT_COMMON_DIR 如果将此变量设置为路径,则通常在 GIT_DIR 中的非工作树文件将从此路径中获取。特定于工作树的文件(如 HEAD 或索引)取自 GIT_DIR。...core.quotePath 输出路径的命令(例如 ls-files , diff )将在路径名中引用“异常”字符,方法是将路径名括在双引号中并使用反斜杠转义那些字符。...这可以在每个远程基础上被覆盖;见远程。.proxy http.proxyAuthMethod 设置用于针对 HTTP 代理进行身份验证的方法。...http.extraHeader 与服务器通信时传递其他 HTTP 标头。如果存在多个此类条目,则将所有条目添加为额外标头。要允许覆盖从系统配置继承的设置,空值会将额外标头重置为空列表。....proxy 对于需要 curl(http,https 和 ftp)的远程控制,用于该远程的代理的 URL。设置为空字符串以禁用该远程代理。 remote.

    29720

    玩转Nginx服务器,怎能不懂Nginx的配置和优化?

    配置基于ip的虚拟主机 Linux和FreeBSD都允许添加IP别名,IP别名背后的概念很简单:可以在一块物理网卡上绑定多个IP地址。...在Linux系统上,可以使用标准的网络配置工具(比如ifconfig和route命令)添加ip别名,以下是添加ip别名的示例。 先用ifconfig命令查看改服务器的IP地址。...但是通过 ifconfig 和 route命令配置的IP别名会在服务器重启后会消失。不过可以通过将ifconfig和route两条命令添加到/etc/rc.local文件中,让系统开机时自动运行。..." "$http_user_agent"'; 在日志格式中: 变量remote_addr和http_x_forwarded_for用来记录IP地址; $remote_user 用来记录远程客户端名称;...=N] [valid=time] | off 该指令默认是禁止的,等他于open_log_file_cache off open_log_file_cache 指令的各项参数如下: max: 设置缓存中的最大文件描述符数量

    92310

    Git命令大全

    ,默认缓存较小,提交会失败 # 缓存大小单位:B,例如:524288000(500MB) $ git config --global http.postBuffer # 调用 git status...# 把指定的文件添加到暂存区中 $ git add 路径> # 添加所有修改、已删除的文件到暂存区中 $ git add -u [路径>] $ git add --update [路径...>] # 添加所有修改、已删除、新增的文件到暂存区中,省略 路径> 即为当前目录 $ git add -A [路径>] $ git add --all [路径>] # 查看所有修改...# 把暂存区中的文件提交到本地仓库,调用文本编辑器输入该次提交的描述信息 $ git commit # 把暂存区中的文件提交到本地仓库中并添加描述信息 $ git commit -m "的描述信息...# 方法二:放弃本地修改,直接覆盖 git reset --hard git pull 1 2 复制 ---- # 版本控制完整流程 # 第一种方法:(简单易懂) git add .

    97710

    Ansible Inventory

    ansible_ssh_host # 将要连接的远程主机名.与你想要设定的主机的别名不同的话,可通过此变量设置. ansible_ssh_port # ssh 端口号.如果不是默认的端口号,通过此变量设置...当为一台主机或组配置 ProxyCommand 时有用。 ansible_sftp_extra_args # 此设置始终附加在默认的 sftp 命令行中。...这样会覆盖 ansible.cfg 文件中的 ssh_executable 设置 # 远程主机环境变量选项: ansible_shell_type # 指定远程主机使用的 Shell。...在使用该选项前一定要先将 ansible_shell_executable 设置为 non-Bourne (sh) 。默认命令使用 sh....这将替换运行模块在远程主机上的 shabang. ansible_shell_executable #设置远程主机使用何种 shell,默认 /bin/sh,会覆盖 executable in ansible.cfg

    1.3K10

    Ubuntu 14.04 LTS系统中配置Apache2虚拟主机

    5.为虚拟主机创建示例页 6.创建虚拟主机配置文件 6.1默认情况下,apache有一个默认的虚拟主机文件叫000-default.conf。...ServerAlias www.yuyuyu.local www.yu.local # 网址的别名,可以通过添加,如果你想多个网站名称都取得相同的网站,可以设置多个别名,别名之间用空格隔开 DocumentRoot...如果需要调整默认的端口设置,建议编辑这个文件 如果修改了默认的端口VirtualHost *:80>,例如80改为8080后,则需要修改/etc/apache2/ports.conf,添加监听Listen...你将会看到我们之前创建的示例页。 需要注意的问题 域名访问的时候要用ip,只有用ip的时候才可以被别的电脑访问,并且访问的时候加上端口,如:80或者8000 在apache的虚拟主机中,如果书写了。...远程访问问题,当时测试的时候,用wifi的ip远程访问,却不能成功,插上网线后,不管用网线的ip还是wifi的ip都可以成功访问。

    1.1K30

    配置多个git账号的ssh密钥

    在 github 网站中添加该 ssh 公钥。 创建公司 ssh 密钥 的过程类似,不再赘述。...其实这个操作只是把专用密钥添加到 ssh-agent 的高速缓存中,因此略过该步骤也不会有影响。...Host 别名:可以随意指定,比如你把 github 的 Host 别名设置为 banana,那你在测试的时候也可以输入ssh -T banana,以后 clone 项目时也可以用 banana 代替.../.git/config 这三种配置文件的优先级由低到高为:--system、--global、--local,优先级高的配置会覆盖优先级低的配置。...配置文件可指定的参数还有很多,如端口等,这里我们直接使用默认端口 22,因此没有再去指定。 其他 pbcopy 和 pbpaste 是两个非常好用的命令,可查阅相关资料了解。

    2.2K20

    Git命令大全,硬气!

    ,默认缓存较小,提交会失败 # 缓存大小单位:B,例如:524288000(500MB) $ git config --global http.postBuffer # 调用 git status...# 列出已经存在的远程仓库 $ git remote # 列出远程仓库的详细信息,在别名后面列出URL地址 $ git remote -v $ git remote --verbose # 添加远程仓库...# 把指定的文件添加到暂存区中 $ git add 路径> # 添加所有修改、已删除的文件到暂存区中 $ git add -u [路径>] $ git add --update [路径...>] # 添加所有修改、已删除、新增的文件到暂存区中,省略 路径> 即为当前目录 $ git add -A [路径>] $ git add --all [路径>] # 查看所有修改、已删除但没有提交的文件...# 把暂存区中的文件提交到本地仓库,调用文本编辑器输入该次提交的描述信息 $ git commit # 把暂存区中的文件提交到本地仓库中并添加描述信息 $ git commit -m "的描述信息

    1.2K20

    常用 Git 命令总结

    它通常将现有路径的当前内容作为一个整体添加,但是通过一些选项,它也可以用于添加内容,只对所应用的工作树文件进行一些更改,或删除工作树中不存在的路径了。...# 把指定的文件添加到暂存区中 $ git add 路径> # 添加所有修改、已删除的文件到暂存区中 $ git add -u [路径>] $ git add --update...git clone 将存储库克隆到新创建的目录中,为克隆的存储库中的每个分支创建远程跟踪分支(使用 git branch -r 可见),并从克隆检出的存储库作为当前活动分支的初始分支。...# 把暂存区中的文件提交到本地仓库,调用文本编辑器输入该次提交的描述信息 $ git commit # 把暂存区中的文件提交到本地仓库中并添加描述信息 $ git commit -m "的描述信息...# 添加远程仓库 $ git remote add 远程仓库的别名> 远程仓库的URL地址> # 修改远程仓库的别名 $ git remote rename 远程仓库的别名> 的别名

    1.1K10

    go语言中的配置管理神器 --viper 一

    它支持:默认配置从 JSON, TOML, YAML, HCL 和 Java 属性配置文件读取数据实时查看和重新读取配置文件(可选)从环境变量中读取从远程配置系统(etcd 或 Consul)读取数据并监听变化从命令行参数读取从...当明确提供ENV变量名称时,它不会自动添加前缀。使用 ENV 变量时要认识到的一件重要事情是每次访问时都会读取该值。当调用 BindEnv 时,Viper不会修复该值。...具体来说,Viper支持Cobra库中使用的Pflag。与BindEnv类似,该值不是在调用绑定方法时设置的,而是在访问该方法时设置的。...viper包支持的所有功能都被镜像为viper实例的方法。...直接使用viper管理配置这里用一个demo演示如何在gin框架搭建的web项目中使用viper,使用viper加载配置文件中的信息,并在代码中直接使用viper.GetXXX()方法获取对应的配置值。

    31721

    自动化运维—Ansible(上)

    但在实际测试中,似乎并没有效果,建议使用方法1....要将源文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录 directory_mode:递归的设定目录的权限,默认为系统默认权限 force:如果目标主机包含该文件...,但内容不同,如果设置为yes,则强制覆盖,如果为no,则只有当目标主机的目标位置不存在该文件时,才复制。...默认为yes others:所有的file模块里的选项都可以在这里使用 src:要复制到远程主机的文件在本地的地址,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。...creates:指定一个文件名,当该文件存在时,则解压指令不执行 dest:远程主机上的一个路径,即文件解压的路径 grop:解压后的目录或文件的属组 list_files:如果为yes

    2.6K10

    Git命令大全

    未添加到Git中 $ git status -s git remote操作远程库 # 列出已经存在的远程仓库 $ git remote # 列出远程仓库的详细信息,在别名后面列出URL地址 $ git...remote -v $ git remote --verbose # 添加远程仓库 $ git remote add 远程仓库的别名> 远程仓库的URL地址> # 修改远程仓库的别名 $ git...> git add把要提交的文件的信息添加到暂存区中 # 把指定的文件添加到暂存区中 $ git add 路径> # 添加所有修改、已删除的文件到暂存区中 $ git add -u [路径...>] $ git add --update [路径>] # 添加所有修改、已删除、新增的文件到暂存区中,省略 路径> 即为当前目录 $ git add -A [路径>] $ git...>] git commit将暂存区中的文件提交到本地仓库中 # 把暂存区中的文件提交到本地仓库,调用文本编辑器输入该次提交的描述信息 $ git commit # 把暂存区中的文件提交到本地仓库中并添加描述信息

    76820

    物联网网关神器 Kong ( 四 )- 利用 Konga 来配置生产环境安全连接 Kong

    物联网网关神器 Kong ( 四 )- 利用 Konga 来配置生产环境安全连接 Kong 前言 上一篇我们讲解了 Konga 的搭建和与 Kong 进行默认连接,本篇文章将讲一下如何在生产环境中基于验证的连接...首先,你可以通过默认方法连接上你的 Kong admin,这样方便进行配置。而后创建 Service。 Service ( 服务 ) Service 是 Kong 对于服务的抽象概念。...默认为426。 Regex priority:正则匹配的优先级。在使用正则做路由匹配的时候会利用该标志使用优先级最高的。...如果路由匹配,且 Regex priority 也相同,则会按照最早创建的规则来匹配。 Methods:HTTP 请求方法。...如 GET 、POST 、PATCH 、PUT Strip Path:是否删除路由所匹配的路径。 例如路由的规则为 /a,请求为 /a/user。

    3.2K10

    Docker系列教程15-Docker容器网络

    none 网络将容器添加到容器特定的网络,该容器缺少网卡。...默认的 docker0 桥接网络支持使用端口映射和 docker run--link ,以便在 docker0网络中的容器之间进行通信。 不推荐这种方法。 如果可以,请使用用户定义的桥接网络。...您可以创建一个新的桥接网络, 覆盖网络或MACVLAN网络 。 您还可以创建一个网络插件或远程网络进行完整的自定义和控制。...$ docker network create --driver weave mynet 您可以检查该网络、让容器连接或断开该网络,删除该网络。 特定的插件为特定的需求而生。...在其中添加如类似下所示的JSON,如果需要,使用 httpsproxy 或 ftpproxy 替换代理类型,然后替换代理服务器的地址和端口。 您可以同时配置多个代理服务器。

    1.1K70

    Windows PowerShell 实战指南-动手实验-3.8

    该文本采用 ASCII 格式进行编码,以便搜索程序(如 Findstr 和 Grep)可以读取该文本。默认情况下,Out-File 使用 Unicode 格式。...在省略参数名时,这些参数的值必须以指定 的顺序出现在命令中。在此示例中,-Name 的值(“list”)必须为第一个参数,-Value 的值 (“get-location”)必须为第二个参数。...11.Out-File 命令输出到文件每一行记录的默认宽度大小为多少个字符?是否有一个参数可以修改这个宽度? -Width 指定输出的每一行中的字符数。将截断任何额外字符,不换行。...如果省略此参数,则由主机的特征确定宽度。Windows PowerShe ll 控制台的默认值为 80(字符)。 是否必需? False 位置? named 默认值 80 是否接受管道输入?...默认情况下,如果指定路径中存在文件,则 Out-File 将在不发出警告的情况下覆盖该文 件。如果同时使用了 Append 和 NoClobber,则输出将追加到现有文件。

    2.2K20
    领券