如何在 golang 中限制从服务器上传和下载的速度?我正在编写一个 golang 服务器来允许用户上传和下载文件。而且文件很大,大约 1GB 字节。我想将上传和下载速度限制为(例如)1MB/s(当然可以配置)。下面是我的上传代码:func uploadFile(w http.ResponseWriter, r *http.Request) { file, _, err := r.FormFile("file") if err != nil { http.Error(w, err.Error(), 500) return } defer file.Close() os.MkdirAll(`e:\test`, os.ModePerm) out, err := os.Create(`e:\test\test.mpg`) if err != nil { http.Error(w, err.Error(), 500) return } defer out.Close() _, err = io.Copy(out, file) if err != nil { http.Error(w, err.Error(), 500) }}
2 回答
SMILET
TA贡献1796条经验 获得超4个赞
您可以查看本文中PuerkitoBio/throttled
介绍的的实现:
throttled
,一个 Go 包,它实现了各种策略来控制对 HTTP 处理程序的访问。
开箱即用,它支持请求的速率限制、请求的恒定间隔流和内存使用阈值以授予或拒绝访问,但它还提供扩展其功能的机制。
速率限制并不是您所需要的,但可以为实现类似功能提供一个好主意。
- 2 回答
- 0 关注
- 189 浏览
添加回答
举报
0/150
提交
取消