golang服务器:如何连续检索多个文件
golang server: how to retrieve multiple files continuously
我已经实现了一个基于gin
(golang web框架)的http服务器。
我 post 2 张图片到服务器 curl multipart/form-data
:
curl -X POST -F upload0=@jpg -F upload1=@jpg -H "Content-Type: multipart/form-data" "http://server:port/path"
服务器代码如下所示:
func extractImgs(c *gin.Context) {
prefix := "prefix"
for ix := 0; ix < 2; ix++ {
file, _, err := c.Request.FormFile(prefix + strconv.Itoa(ix))
if err != nil {
// do sth.
return
}
face_recognize_async(file)
}
}
你知道的,人脸识别很费时间,希望工作流程是:
get_1st_img -> recognize_face -> get_2nd_img -> recognize_face -> ...
我打印 c.Request.FormFile()
执行时间,它 returns 在检索到 所有 2 个文件后 。
我的问题:
1) 如何连续的检索这些文件,就像遍历链表一样;
2) http multipart 是个不错的选择吗,我应该用 TCP/STCP 实现吗?
由于FormFile
为发布的表单中的文件编制索引,因此需要解析整个表单。来自 FormFile
文档:
FormFile calls ParseMultipartForm and ParseForm if necessary.
如果你想一次传输一个部分的多部分形式,使用Request.MultipartReader
我已经实现了一个基于gin
(golang web框架)的http服务器。
我 post 2 张图片到服务器 curl multipart/form-data
:
curl -X POST -F upload0=@jpg -F upload1=@jpg -H "Content-Type: multipart/form-data" "http://server:port/path"
服务器代码如下所示:
func extractImgs(c *gin.Context) {
prefix := "prefix"
for ix := 0; ix < 2; ix++ {
file, _, err := c.Request.FormFile(prefix + strconv.Itoa(ix))
if err != nil {
// do sth.
return
}
face_recognize_async(file)
}
}
你知道的,人脸识别很费时间,希望工作流程是:
get_1st_img -> recognize_face -> get_2nd_img -> recognize_face -> ...
我打印 c.Request.FormFile()
执行时间,它 returns 在检索到 所有 2 个文件后 。
我的问题:
1) 如何连续的检索这些文件,就像遍历链表一样;
2) http multipart 是个不错的选择吗,我应该用 TCP/STCP 实现吗?
由于FormFile
为发布的表单中的文件编制索引,因此需要解析整个表单。来自 FormFile
文档:
FormFile calls ParseMultipartForm and ParseForm if necessary.
如果你想一次传输一个部分的多部分形式,使用Request.MultipartReader