summaryrefslogtreecommitdiff
path: root/workhorse/internal/filestore/reader.go
diff options
context:
space:
mode:
Diffstat (limited to 'workhorse/internal/filestore/reader.go')
-rw-r--r--workhorse/internal/filestore/reader.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/workhorse/internal/filestore/reader.go b/workhorse/internal/filestore/reader.go
new file mode 100644
index 00000000000..b1045b991fc
--- /dev/null
+++ b/workhorse/internal/filestore/reader.go
@@ -0,0 +1,17 @@
+package filestore
+
+import "io"
+
+type hardLimitReader struct {
+ r io.Reader
+ n int64
+}
+
+func (h *hardLimitReader) Read(p []byte) (int, error) {
+ nRead, err := h.r.Read(p)
+ h.n -= int64(nRead)
+ if h.n < 0 {
+ err = ErrEntityTooLarge
+ }
+ return nRead, err
+}