iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >Golang如何打包配置文件
  • 527
分享到

Golang如何打包配置文件

2023-06-22 00:06:59 527人浏览 薄情痞子
摘要

这篇文章主要介绍了golang如何打包配置文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。背景最近在写一个涉及到管理阿里云 ECS 的 CLI 工具,这里当然就要考虑阿里云

这篇文章主要介绍了golang如何打包配置文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

背景

最近在写一个涉及到管理阿里云 ECS 的 CLI 工具,这里当然就要考虑阿里云资源使用的安全性了,要求阿里云账号的 AccessKeyId 和 AccessKeySecret 不能下发给 CLI 工具的使用者。

Golang如何打包配置文件

所以这里选择将一份包含 AccessKeyId 和 AccessKeySecret 的配置文件打包进了 CLI 工具中,CLI 工具的使用者默认将使用已经打包了的配置文件,当然也可以通过指定配置文件或传递参数的方式使用新的配置信息。

实现

工具

这里将介绍 Golang 的一个可以把任意文件转换成 Go 代码的库 go-bindata,可以用于嵌入二进制文件到 Go 程序中。同时,也支持在转换成原始的字节切片前使用 gzip 进行压缩文件数据。
关于该工具的具体介绍请跳转至 https://GitHub.com/go-bindata/go-bindata

打包

使用 go-bindata 工具将包含敏感信息的配置文件转换成 Go 的源代码,下面是项目 Makefile 的部分内容,工具名称就叫 mycli 吧。

NAME = mycliCONFIG = configs/config.yaml.PHONY: buildbuild:    cp $(CONFIG) config.yaml    mkdir -p cmd/mycli/asset    go-bindata -pkg asset -o cmd/mycli/asset/asset.go \        scripts/... \        config.yaml        CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/linux/mycli cmd/mycli/*.go    CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o bin/darwin/mycli cmd/mycli/*.go        chmod +x ./bin/linux/mycli ./bin/darwin/mycli    rm -f config.yaml mycli    ln -s bin/linux/mycli mycli

其中将文件转换成 Go 源代码的部分如下:

go-bindata -pkg asset -o cmd/mycli/asset/asset.go \    scripts/... \    config.yaml

关于 go-bindata 命令行工具的选项说明:

  • -pkg 指定 package 名称,调用的写法将变成 asset.Asset("config.yaml")

  • -o 指定生成的 Go 源代码存放的位置

生成的 asset.go 代码如下:

// Code generated by go-bindata.// sources:// scripts/create.sh// scripts/sub/delete.sh// config.yaml// DO NOT EDIT!package assetfunc bindataRead(data []byte, name string) ([]byte, error) {    ...}type asset struct { bytes []byte info  os.FileInfo}type bindataFileInfo struct { name    string size    int64 mode    os.FileMode modTime time.Time}func (fi bindataFileInfo) Name() string { return fi.name}func (fi bindataFileInfo) Size() int64 { return fi.size}func (fi bindataFileInfo) Mode() os.FileMode { return fi.mode}func (fi bindataFileInfo) ModTime() time.Time { return fi.modTime}func (fi bindataFileInfo) IsDir() bool { return false}func (fi bindataFileInfo) Sys() interface{} { return nil}...

调用

使用 Asset 方法进行加载打包好的配置文件:

const preloadConfigFile = "config.yaml"type Config struct {    ...}func PreloadConfig() (*Config, error) {    b, err := asset.Asset(preloadConfigFile)    if err != nil {        return nil, fmt.Errorf("failed to read config: %v", err)    }    var config *Config    err = yaml.Unmarshal(b, &config)    return config, err}

感谢你能够认真阅读完这篇文章,希望小编分享的“Golang如何打包配置文件”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网GO频道,更多相关知识等着你来学习!

您可能感兴趣的文档:

--结束END--

本文标题: Golang如何打包配置文件

本文链接: https://www.lsjlt.com/news/301464.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Golang如何打包配置文件
    这篇文章主要介绍了Golang如何打包配置文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。背景最近在写一个涉及到管理阿里云 ECS 的 CLI 工具,这里当然就要考虑阿里云...
    99+
    2023-06-22
  • Golang打包配置文件的实现示例
    目录背景 实现 工具 打包 调用 总结 众所周知,Golang 适合写 CLI 工具,但你可能还不知道 Golang 还可以打包配置文件。 背景 最近在写一个涉及到管理阿里云 EC...
    99+
    2024-04-02
  • Vue-cli如何配置打包本地文件
    这篇文章主要介绍了Vue-cli如何配置打包本地文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。最近做的一个嵌入app的pc端项目,用的也...
    99+
    2024-04-02
  • 使用PyInstaller 打包配置文件
    目录PyInstaller打包配置文件(一) 仅打包python文件(二) 打包python文件与资源文件pyinstaller打包后,配置文件无法正常读取问题P...
    99+
    2024-04-02
  • webpack多入口文件页面如何打包配置
    这篇文章主要介绍webpack多入口文件页面如何打包配置,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!手动配置单页应用程序和多页应用程序的 webpack配置文件其实绝大部分都还是相...
    99+
    2024-04-02
  • Maven打包时指定配置文件
            springboot项目通常会有部署到测试、演示、生产等多个环境,每次打包时都需要修改配置文件或指定配置文件,既麻烦,也不便于war包部署和版本管理。可以在maven打包时指定配置文件,实现打包配置文件零修改。       ...
    99+
    2023-09-13
    maven java 服务器
  • Vue-Cli如何打包自动生成/抽离相关配置文件
    小编给大家分享一下Vue-Cli如何打包自动生成/抽离相关配置文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!背景•基于Vue...
    99+
    2024-04-02
  • vue.config.js如何打包优化配置
    这篇文章主要介绍了vue.config.js如何打包优化配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。未优化之前的 //感觉太大了 抬它优化之后的这些是必要的下载cons...
    99+
    2023-06-14
  • Python如何打包exe文件
    这篇文章将为大家详细讲解有关Python如何打包exe文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先把你的代码准备好,尽量不要中文路径,容易报错。这个是要用的模块Pyinstaller它不是Pyt...
    99+
    2023-06-25
  • pycharm如何打包py文件
    使用 pycharm 打包 py 文件的步骤:创建可执行文件:打开项目,转到 "run" > "edit configurations"。选择打包器:选择 "pyinstaller...
    99+
    2024-04-19
    python pycharm
  • vue打包之后如何生成一个配置文件修改接口
    这篇文章主要介绍了vue打包之后如何生成一个配置文件修改接口,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言:我们的vue代码打包上传到服...
    99+
    2024-04-02
  • pycharm如何打包项目文件
    可以使用三种方法通过 pycharm 打包项目文件:通过 build actions 右键菜单选项打包文件或文件夹;通过 file 菜单中的 "package..." 选项打包;使用 p...
    99+
    2024-04-19
    pycharm
  • 聊聊如何在Golang中修改配置文件
    在应用程序的开发过程中,有一个非常重要的文件——配置文件(configuration file)往往包含了各种参数和选项,以调整应用程序的行为和表现形式。常见的配置文件格式有ini、json、yaml等等。虽然配置文件对于应用程序的正确运行...
    99+
    2023-05-14
  • java如何读取jar包下的配置文件
    可以使用Java中的ClassLoader来读取jar包下的配置文件。使用ClassLoader的getResourceAsStre...
    99+
    2023-09-17
    java
  • maven如何利用springboot的配置文件进行多个环境的打包
    在Spring Boot中多环境配置文件名需要满足application-{profiles.active}.properties的格式,其中{profiles.active}对应你...
    99+
    2023-02-08
    springboot maven多环境打包 springboot配置文件 maven
  • 使用springBoot项目配置文件位置调整到打包外
    项目目录 问题痛点: 当我们打包一个项目的时候,springboot打包的jar都是把resouce下的配置文件打进去了,这样就没发修改配置文件 解决方案 1.打包的时候...
    99+
    2024-04-02
  • ThinkPHP如何配置文件
    这篇文章将为大家详细讲解有关ThinkPHP如何配置文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。thinkphp是什么thinkphp属于一种免费的开发框架,能够用于开发前端网页,最早thinkph...
    99+
    2023-06-14
  • 【Android中如何打包Jar、aar文件】
    Android中如何打包Jar、aar. 本文讲解在安卓中如何自己打包Jar、aar文件。 新建Library Library名字自己随意取哈,这里本人取testLibrary。 添加配置 在所有类或API封装完成后就是开始添加配置进行...
    99+
    2023-08-30
    android jar java android studio
  • Vue如何打包生成dist文件
    这篇文章主要介绍Vue如何打包生成dist文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、相关配置情况一(使用的工具是 vue-cil)      &...
    99+
    2023-06-26
  • 如何使用websocket打包.less文件
    这篇文章给大家分享的是有关如何使用websocket打包.less文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。安装:npm  install ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作