我fasthttp用于文件服务器项目。文件服务器具有上传功能。对于上传文件,我将 akey作为 URL Query 传递以验证上传权限。
主要的():
// start http server
log.Printf("Starting HTTP server on %q", listento)
go func() {
h := &fasthttp.Server{
Handler: requestHandler,
MaxRequestBodySize: 2 * 1024 * 1024 * 1024,
}
if err := h.ListenAndServe(listento); err != nil {
log.Panicf("error in ListenAndServe: %s", err)
}
}()
requestHandler 函数:
func requestHandler(ctx *fasthttp.RequestCtx) {
switch string(ctx.Path()) {
case "/uploadx":
log.Println("Upload: ["+ctx.RemoteIP().String()+"] ["+string(ctx.Path())+"]")
}
}
我上传了一个大文件,不幸的requestHandler是,文件上传过程完成后会触发。但它应该在上传过程开始时触发,因为我想避免有人在没有检查权限的情况下上传 500MB 文件。
有什么方法可以让 requestHandler 更快地触发?在上传过程的开始?
服务器本身接收到了 HTTP 请求的第一部分,所以最大的问题是,为什么这么晚才fasthttp触发?requestHandler
我现在试过了net/http:
mux.HandleFunc("/upload", uploadFile)
func uploadFile(w http.ResponseWriter, r *http.Request) {
fmt.Println("File Upload Endpoint Hit")
fmt.Println(r)
}
随着net/http我收到File Upload Endpoint Hit已经开始的 FileUpload - 完全符合要求,但我真的更喜欢使用fasthttp.
难道我做错了什么?谢谢
慕斯709654
相关分类