]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
web服务限速
authorqydysky <32743305+qydysky@users.noreply.github.com>
Sun, 16 Oct 2022 14:24:21 +0000 (22:24 +0800)
committerqydysky <32743305+qydysky@users.noreply.github.com>
Sun, 16 Oct 2022 14:24:21 +0000 (22:24 +0800)
Reply/F.go
demo/go.mod
demo/go.sum
go.mod
go.sum

index 1ae9770abab3a52496fc99fbba251b0ee339b6cb..9cd817197102078f1341b0424c41c9ec97a6c940 100644 (file)
@@ -10,7 +10,6 @@ import (
        "math"
        "net/http"
        "net/url"
-       "os"
        "os/exec"
        "path/filepath"
        "strconv"
@@ -1164,29 +1163,12 @@ func init() {
                                                } else if p.Checkfile().IsExist(v + "0.mp4") {
                                                        v += "0.mp4"
                                                }
-                                               if f, e := os.OpenFile(v, os.O_RDONLY, 0644); e != nil {
-                                                       w.Header().Set("Retry-After", "1")
-                                                       w.WriteHeader(http.StatusServiceUnavailable)
+
+                                               f := file.New(v, 0, false)
+                                               defer f.Close()
+
+                                               if e := f.CopyToIoWriter(w, 1000000, true); e != nil {
                                                        flog.L(`E: `, e)
-                                               } else {
-                                                       // 流推送
-                                                       l := limit.New(5, 500, -1)
-                                                       defer l.Close()
-                                                       var buf = make([]byte, 1<<16)
-                                                       for {
-                                                               if n, e := f.Read(buf); e != nil {
-                                                                       if errors.Is(e, io.EOF) {
-                                                                               break
-                                                                       } else {
-                                                                               flog.L(`E: `, e)
-                                                                       }
-                                                               } else {
-                                                                       if _, e := w.Write(buf[:n]); e != nil {
-                                                                               break
-                                                                       }
-                                                               }
-                                                               l.TO()
-                                                       }
                                                }
                                        } else {
                                                w.Header().Set("Retry-After", "1")
index 862480233bf33a8d169b4b1f4f432e02bd567d65..3f6e64f191e29f9a1848798315291af24bddd8ed 100644 (file)
@@ -15,7 +15,7 @@ require (
        github.com/mdp/qrterminal/v3 v3.0.0 // indirect
        github.com/miekg/dns v1.1.50 // indirect
        github.com/mitchellh/mapstructure v1.5.0 // indirect
-       github.com/qydysky/part v0.10.13 // indirect
+       github.com/qydysky/part v0.10.14 // indirect
        github.com/shirou/gopsutil v3.21.11+incompatible // indirect
        github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e // indirect
        github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 // indirect
index 45d42c4ad4ddbe114cd174d0291b4db962237d7b..5a692f73277068fd61f44a56aee939dbe1b0b379 100644 (file)
@@ -111,6 +111,8 @@ github.com/qydysky/part v0.10.11 h1:6KeTx3accgmzv+HwMP8mcYmWhWxAO7wxyPisQWJTfS4=
 github.com/qydysky/part v0.10.11/go.mod h1:B3GD/j5jmvwfKtnzDWqRYFqnwOXEyoUg/jShFk1yQSM=
 github.com/qydysky/part v0.10.12 h1:i5eMB/AMncs0pqWD3z1E8FivxiyDGGrsIQtKbkOjW/Y=
 github.com/qydysky/part v0.10.12/go.mod h1:B3GD/j5jmvwfKtnzDWqRYFqnwOXEyoUg/jShFk1yQSM=
+github.com/qydysky/part v0.10.14 h1:Pf13/0mbl7Gc0qRnJXUDnzALqJKRDL88ZbQm5JI2nS0=
+github.com/qydysky/part v0.10.14/go.mod h1:B3GD/j5jmvwfKtnzDWqRYFqnwOXEyoUg/jShFk1yQSM=
 github.com/shirou/gopsutil v3.20.12+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
 github.com/shirou/gopsutil v3.21.5+incompatible h1:OloQyEerMi7JUrXiNzy8wQ5XN+baemxSl12QgIzt0jc=
 github.com/shirou/gopsutil v3.21.5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
diff --git a/go.mod b/go.mod
index 04a2698140d941816e72f217d576112d9277c183..d78ea4f20dd2eeb4fa10c9ce6817b5869ded7e25 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -7,7 +7,7 @@ require (
        github.com/gofrs/uuid v4.3.0+incompatible
        github.com/gotk3/gotk3 v0.6.1
        github.com/mdp/qrterminal/v3 v3.0.0
-       github.com/qydysky/part v0.10.13
+       github.com/qydysky/part v0.10.14
        github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
        github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966
        golang.org/x/text v0.3.8
diff --git a/go.sum b/go.sum
index 243d3d51a079f00b18f087b35ef712289d394556..66ba204e0f54ba8433f2687ece8aea93689b38f0 100644 (file)
--- a/go.sum
+++ b/go.sum
@@ -45,6 +45,8 @@ github.com/qydysky/part v0.10.12 h1:i5eMB/AMncs0pqWD3z1E8FivxiyDGGrsIQtKbkOjW/Y=
 github.com/qydysky/part v0.10.12/go.mod h1:B3GD/j5jmvwfKtnzDWqRYFqnwOXEyoUg/jShFk1yQSM=
 github.com/qydysky/part v0.10.13 h1:X2pzesWFRTyEw164sP3AaijYiRH3WoaUcldzklrmcI8=
 github.com/qydysky/part v0.10.13/go.mod h1:B3GD/j5jmvwfKtnzDWqRYFqnwOXEyoUg/jShFk1yQSM=
+github.com/qydysky/part v0.10.14 h1:Pf13/0mbl7Gc0qRnJXUDnzALqJKRDL88ZbQm5JI2nS0=
+github.com/qydysky/part v0.10.14/go.mod h1:B3GD/j5jmvwfKtnzDWqRYFqnwOXEyoUg/jShFk1yQSM=
 github.com/shirou/gopsutil v3.20.12+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
 github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI=
 github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=