大文件转HTTP下载服务
单文件
原生 go 的实现
func TestDownloadFileByHttp(t *testing.T) {
fp := "./samples/1.mp4"
name := filepath.Base(fp)
http.HandleFunc("/"+name, func(writer http.ResponseWriter, request *http.Request) {
http.ServeFile(writer, request, fp)
})
err := http.ListenAndServe(":8100", nil)
assert.NoError(t, err)
}http://127.0.0.1:8100/1.mp4Kratos 或者 Gin 实现
func TestDownloadFileByGin(t *testing.T) {
fp := "./samples/1.mp4"
name := filepath.Base(fp)
g := gin.Default()
g.GET("/"+name, func(context *gin.Context) {
http.ServeFile(context.Writer, context.Request, fp)
})
g.StaticFile("/sf_"+name, fp)
err := g.Run(":8100")
err = http.ListenAndServe(":8100", nil)
assert.NoError(t, err)
}单文件数据流方式
下载整个目录
自定义数据流,可用于文件加密
导入的代码头
代码和视频
最后更新于