前言:
Go语言程序发布过程中,可能会调用到静态资源,如http接口返回的html文件。这个时候把资源文件打包进Go语言的可执行文件中,可以使go程序更方便的发布和分享。需要说明的是,打包静态文件不是必须要做的,也是不所有项目都有这样的要求。只有部份需要把资源文件加密的情况下才需要如此这般操作。
安装packr库:
go get -u github.com/gobuffalo/packr使用示例:
目录结构:
代码:
package main
import (
"fmt"
"github.com/360EntSecGroup-Skylar/excelize"
"github.com/gobuffalo/packr"
)
func main() {
box := packr.NewBox("./templates")
//s, _ := box.FindString("T1.xlsx")
s1,_:=box.Open("T1.xlsx")
f, _ := excelize.OpenReader(s1)
rows:= f.GetRows("Sheet1")
for{
fmt.Println(rows)
}
}
运行结果:
参考以上代码,将程序打包成可执行文件即可以将资源文件打包到可执行文件中。其中packr.NewBox("./templates")这个函数就是打包资源文件的函数。参考以下api,可以根据实际情况调用:
box := packr.NewBox("./templates") //打包静态资源文件
s, _ := box.FindString("T1.xlsx") //读取资源文件为字符串
s0,_:=box.Find("T1.xlsx") //读取资源文件为byte切片
s1,_:=box.Open("T1.xlsx") //读取资源文件为io.Reader