利用 Golang 构建一个简单的静态资源服务,在应用调试时还是非常有用的,核心的方法使用 http.FileServer 来实现,不过原生 golang 的文件服务时不支持隐藏文件目录列表的,这样可能会带来一些安全隐患;
今天我就介绍下通过 Orange框架通过路由绑定静态资源目录实现一个文件服务;
第一步:
在 GOPATH/src 目录下创建一个目录,然后目录中创建main.go文件;
文件内容:
package main
import "gitee.com/zhucheer/orange/app"
func main(){
router := &Route{}
app.AppStart(router)
}
type Route struct {
}
func (s *Route) ServeMux() {
app.NewRouter("").GET("/", func(ctx *app.Context) error {
return ctx.ToString("Hello world!")
})
// 通过配置 第3个参数还能设置是否允许显示文件列表
app.NewRouter("").ASSETS("/storage", "./storage", app.AutoIndex)
}
func (s *Route) Register() {
}
第二步
拉取依赖并运行
go mod init
go run main.go
这样我们访问http://localhost:8088/storage 就能到对应的文件列表了;
Orange框架还有更多丰富的能力,详见文档 http://zhucheer.gitee.io/orange_doc
有疑问加站长微信联系(非本文作者)