返回顶部
首页 > 资讯 > 后端开发 > GO >Golang嵌入资源文件实现步骤详解
  • 771
分享到

Golang嵌入资源文件实现步骤详解

Go嵌入资源文件Go嵌入资源 2023-01-09 18:01:53 771人浏览 独家记忆
摘要

目录文本文件图片文件镜像文件前端应用文件编译打包Go文档中展示了多种方式实现外部资源嵌入,包括文本文件、图片、iOS文件等: 文本文件 package main import _ "

Go文档中展示了多种方式实现外部资源嵌入,包括文本文件、图片、iOS文件等:

文本文件

package main
import _ "embed"
//go:embed schema.sql
var tableCreate string
func main() {
	print(tableCreate)
}

在构建时,schema.sql内容会嵌入至应用中,使得tableCreate字符串变量可用。与通过环境变量嵌入信息至应用类似。

输出结果:

create table sys_user(
    id int,
    name varchar(36),
    birth date
)

图片文件

如果是图片,可以编码为二进制字节切片:

package main
import (
	_ "embed"
	"encoding/base64"
)
//go:embed logo.png
var logo []byte
func main() {
	print(base64.RawStdEncoding.EncodeToString(logo))
}

镜像文件

一旦在内存中,logo文件就可以通过Http连接提供给客户端使用。使用embed.FS接口与上面示例不同,数据仅当需要时才会加载至内存,这种方法对于大文件非常有用:

package main
import (
	"embed"
	"fmt"
)
//go:embed ubuntu-20-cloud.iso
var f embed.FS
func main() {
	data, _ := f.ReadFile("ubuntu-20-cloud.iso")
	fmt.Printf("Total bytes: %d\n", len(data))
}

Go是一种非常好的系统编程语言,它提供了许多用于管理文件系统和网络的包,应用可能会在程序中发送类似ISO映像文件,可以随时将其写入磁盘中。

前端应用文件

有时希望把前端应用的文件嵌入至应用中,和http服务一起实现完整WEB应用。

// frontend holds our static web server content.
//go:embed image/* template/*
//go:embed public/index.html
//go:embed CSS/*

var frontend embed.FS

现在可以简单连接embed.FS至自定义HTTP中间件或处理器,从特点路由或路径给用户提供文件。下面时Go文档中提供的示例:

http.Handle( "/public/",
    http.StripPrefix( "/public/",
        http.FileServer( http.FS(frontend))))

你的api可以被绑定到路径/API/v1/,然后你嵌入的任何静态内容都会通过/public/路由提供访问。

编译打包

go build .

通过编译打包,会生成独立可执行文件。拷贝至任何目录也可以直接运行,不会因为找不到资源文件而报错。

到此这篇关于golang嵌入资源文件实现步骤详解的文章就介绍到这了,更多相关Go嵌入资源文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: Golang嵌入资源文件实现步骤详解

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

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

猜你喜欢
  • Golang嵌入资源文件实现步骤详解
    目录文本文件图片文件镜像文件前端应用文件编译打包Go文档中展示了多种方式实现外部资源嵌入,包括文本文件、图片、ios文件等: 文本文件 package main import _ "...
    99+
    2023-01-09
    Go嵌入资源文件 Go嵌入资源
  • SpringBoot web静态资源映射实现步骤详解
    目录静态资源映射规则自定义静态资源映射规则静态资源映射规则 “/**” 访问当前项目任何资源,全部找静态资源的文件夹进行映射 静态资源的文件夹包括: &quo...
    99+
    2024-04-02
  • SpringBoot启动嵌入式Tomcat的实现步骤
    目录Spring Boot中Web容器相关接口WebServerServletWebServerFactoryWebServerFactoryCustomizerBeanPostPr...
    99+
    2024-04-02
  • SpringBoot详细讲解静态资源导入的实现
    目录SpringBootWeb开发1. 静态资源导入webjars使用自己的静态资源总结2.制作特殊的首页图标转变Thymeleaf模板引擎引入Thymeleaf取值有无转义循环Sp...
    99+
    2024-04-02
  • Vue实现导入Excel功能步骤详解
    1.前端主导实现步骤 第一步,点击页面上的导入按钮,读入Excel文件 利用插件完成。 第二步,按照后端的要求对数据格式加工,转成他们需要的格式 需要自己写逻辑。 第三步,通过后端接...
    99+
    2024-04-02
  • servlet实现文件下载的步骤及说明详解
    servlet实现文件下载所需步骤及说明,供大家参考,具体内容如下参考文章:Servlet实现文件下载功能1.原理介绍:        Web容器为Servlet生成并且...
    99+
    2023-05-31
    servlet 文件下载 实现文件
  • Android 原始资源文件的使用详解
    背景知识介绍与其他平台的应用程序一样,Android中的应用程序也会使用各种资源,比如图片,字串等,会把它们放入源码的相应文件夹下面,如/res/drawable, /res/...
    99+
    2022-06-06
    源文件 Android
  • python数据写入Excel文件中的实现步骤
    目录一、导入excel表格文件处理函数二、创建excel表格类型文件三、在excel表格类型文件中建立一张sheet表单四、自定义列名五、将列属性元组col写进sheet表单中六、将...
    99+
    2024-04-02
  • Android实现文件资源管理器雏形
    本文实例为大家分享了Android文件资源管理器雏形的实现代码,供大家参考,具体内容如下 学习Android,应该在掌握单个知识点之后,把多个知识点串联起来实现一些有一定代码量的小项...
    99+
    2024-04-02
  • Android怎么实现文件资源管理器
    这篇“Android怎么实现文件资源管理器”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android怎么实现文件资源管理器...
    99+
    2023-06-29
  • Node如何实现异步资源上下文共享
    这篇文章主要介绍“Node如何实现异步资源上下文共享”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Node如何实现异步资源上下文共享”文章能帮助大家解决问题。异步资...
    99+
    2024-04-02
  • 用python实现域名资产监控的详细步骤
    应用场景 域名资产监控,通过输入一个主域名,找到该域名对应的ip地址所在的服务器的端口开闭情况。通过定期做这样的监控,有助于让自己知道自己的资产的整体暴露面情况。 所需要具备的前缀技...
    99+
    2024-04-02
  • Android 修改现有ROM资源文件如何实现
    Android 修改现有ROM资源文件 一,准备工作 1.一台开发手机。     我推荐最好用G7,也是就HTC Desire那款(是不是有些...
    99+
    2022-06-06
    源文件 rom Android
  • 解析和实施Golang文件监控应用的案例步骤
    Golang文件监控应用案例解析及实现步骤 一、引言文件监控是计算机系统中常见的功能之一,通过监控文件的变动,可以及时地获取文件的变化情况,对于一些需要实时监控文件的场景非常有用。本文...
    99+
    2024-02-25
    golang 文件监控 实现步骤
  • ASP.NET Core WebAPI实现本地化(单资源文件)
    在Startup ConfigureServices 注册本地化所需要的服务AddLocalization和 Configure<RequestLocalizationO...
    99+
    2022-06-07
    本地化 webapi core ASP net ASP.NET 源文件
  • NestJS+Redis实现缓存步骤详解
    NestJS的缓存模块天生支持Redis等缓存机制。以下通过一个示例,说明如何在NestJS中操作Redis。步骤如下: 先安装运行Redis服务,步骤参见链接 新建nestjs项目...
    99+
    2024-04-02
  • 修改Android中hosts文件的步骤详解
    前言 在开发的时候我们可能会需要修改Android的hosts文件。Android的hosts文件路径是/system/etc/hosts,在修改该文件前首先需要Android...
    99+
    2022-06-06
    hosts Android
  • 怎么提交文件到gitee(步骤详解)
    随着开源社区的不断发展和壮大,越来越多的开发人员开始使用 Git 来进行版本控制和代码管理。而 Gitee 是一个国内开源项目托管平台,是开源开发者、团队、个人进行 Git 代码管理和协作的首选平台之一。本文将详细介绍如何向 Gitee 提...
    99+
    2023-10-22
  • vue+Minio实现多文件进度上传的详细步骤
    目录背景实现方案了解一下Mino实现步骤1.创建存储桶2.选择文件3.创建上传队列4.开始上传5 上传完成后,同步文件地址给后端6.删除文件完整代码源码分享总结背景 最近突然接到了一...
    99+
    2024-04-02
  • 详解php.ini文件中怎么设置时区(步骤详解)
    在使用PHP编写网站时,有时需要处理日期和时间。为了确保日期和时间的准确性,需要设置正确的时区。PHP使用php.ini文件来配置其运行环境。要设置时区,需要打开php.ini文件并在其中进行相应更改。以下是在php.ini文件中设置时区的...
    99+
    2023-05-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作