为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 golang 中限制从服务器上传和下载的速度?

如何在 golang 中限制从服务器上传和下载的速度?

Go
慕桂英3389331 2021-09-09 13:49:10
如何在 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 处理程序的访问。
开箱即用,它支持请求的速率限制、请求的恒定间隔流和内存使用阈值以授予或拒绝访问,但它还提供扩展其功能的机制。

速率限制并不是您所需要的,但可以为实现类似功能提供一个好主意。


查看完整回答
反对 回复 2021-09-09
  • 2 回答
  • 0 关注
  • 189 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信