rate limit asses.Cksum to 10MBps
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
||||
"math/rand"
|
||||
"os"
|
||||
"path"
|
||||
"show-rss/src/slow"
|
||||
"time"
|
||||
)
|
||||
|
||||
@@ -31,7 +32,7 @@ func One(ctx context.Context, p string) error {
|
||||
|
||||
if err := func() error {
|
||||
if len(last.Cksum) > 0 {
|
||||
cksum, err := Cksum(p)
|
||||
cksum, err := Cksum(ctx, p)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -52,7 +53,7 @@ func One(ctx context.Context, p string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
cksum, err := Cksum(p)
|
||||
cksum, err := Cksum(ctx, p)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -63,7 +64,7 @@ func One(ctx context.Context, p string) error {
|
||||
return checked(ctx, p, cksum, stat.ModTime())
|
||||
}
|
||||
|
||||
func Cksum(p string) (string, error) {
|
||||
func Cksum(ctx context.Context, p string) (string, error) {
|
||||
f, err := os.Open(p)
|
||||
if err != nil {
|
||||
return "", err
|
||||
@@ -71,6 +72,6 @@ func Cksum(p string) (string, error) {
|
||||
defer f.Close()
|
||||
|
||||
hasher := md5.New()
|
||||
_, err = io.Copy(hasher, f)
|
||||
_, err = io.Copy(hasher, slow.NewReader(ctx, 10_000_000, f))
|
||||
return base64.StdEncoding.EncodeToString(hasher.Sum(nil)), err
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ func TestOne(t *testing.T) {
|
||||
p := path.Join(d, "f.mkv")
|
||||
os.WriteFile(p, b, os.ModePerm)
|
||||
|
||||
cksum, _ := asses.Cksum(p)
|
||||
cksum, _ := asses.Cksum(context.Background(), p)
|
||||
|
||||
if err := asses.One(ctx, p); err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -31,7 +31,7 @@ func TestOne(t *testing.T) {
|
||||
t.Fatalf("no new srt: %v", err)
|
||||
}
|
||||
|
||||
newCksum, _ := asses.Cksum(p)
|
||||
newCksum, _ := asses.Cksum(context.Background(), p)
|
||||
if cksum == newCksum {
|
||||
t.Fatalf("cksum unchanged")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user