summaryrefslogtreecommitdiff
path: root/vendor/github.com/minio/minio-go/v7/pkg/peeker/peek-reader-closer.go
diff options
context:
space:
mode:
authorLibravatar kim <grufwub@gmail.com>2025-11-05 21:58:38 +0100
committerLibravatar tobi <tobi.smethurst@protonmail.com>2025-11-17 14:12:41 +0100
commitd0c551acb5ab79efafd325f5b19c76a3de835356 (patch)
treeba9462cdc5081015fbd6bf5d98d9f39334d13207 /vendor/github.com/minio/minio-go/v7/pkg/peeker/peek-reader-closer.go
parent[performance] when transforming media, perform read operations of large files... (diff)
downloadgotosocial-d0c551acb5ab79efafd325f5b19c76a3de835356.tar.xz
[chore] update dependencies (#4542)
- github.com/minio/minio-go/v7: v7.0.95 -> v7.0.97 - github.com/ncruces/go-sqlite3: v0.29.1 -> v0.30.0 - github.com/tdewolff/minify/v2: v2.24.5 -> v2.24.6 - codeberg.org/gruf/go-mmap: fixes build for BSD platforms Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4542 Co-authored-by: kim <grufwub@gmail.com> Co-committed-by: kim <grufwub@gmail.com>
Diffstat (limited to 'vendor/github.com/minio/minio-go/v7/pkg/peeker/peek-reader-closer.go')
-rw-r--r--vendor/github.com/minio/minio-go/v7/pkg/peeker/peek-reader-closer.go73
1 files changed, 0 insertions, 73 deletions
diff --git a/vendor/github.com/minio/minio-go/v7/pkg/peeker/peek-reader-closer.go b/vendor/github.com/minio/minio-go/v7/pkg/peeker/peek-reader-closer.go
deleted file mode 100644
index 26c9cf637..000000000
--- a/vendor/github.com/minio/minio-go/v7/pkg/peeker/peek-reader-closer.go
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * MinIO Go Library for Amazon S3 Compatible Cloud Storage
- * Copyright 2015-2025 MinIO, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package peeker
-
-import (
- "bytes"
- "errors"
- "io"
-)
-
-// PeekReadCloser offers a way to peek a ReadCloser stream and then
-// return the exact stream of the underlying ReadCloser
-type PeekReadCloser struct {
- io.ReadCloser
-
- recordMode bool
- recordMaxBuf int
- recordBuf *bytes.Buffer
-}
-
-// ReplayFromStart ensures next Read() will restart to stream the
-// underlying ReadCloser stream from the beginning
-func (prc *PeekReadCloser) ReplayFromStart() {
- prc.recordMode = false
-}
-
-func (prc *PeekReadCloser) Read(p []byte) (int, error) {
- if prc.recordMode {
- if prc.recordBuf.Len() > prc.recordMaxBuf {
- return 0, errors.New("maximum peek buffer exceeded")
- }
- n, err := prc.ReadCloser.Read(p)
- prc.recordBuf.Write(p[:n])
- return n, err
- }
- // Replay mode
- if prc.recordBuf.Len() > 0 {
- pn, _ := prc.recordBuf.Read(p)
- return pn, nil
- }
- return prc.ReadCloser.Read(p)
-}
-
-// Close releases the record buffer memory and close the underlying ReadCloser
-func (prc *PeekReadCloser) Close() error {
- prc.recordBuf.Reset()
- return prc.ReadCloser.Close()
-}
-
-// NewPeekReadCloser returns a new peek reader
-func NewPeekReadCloser(rc io.ReadCloser, maxBufSize int) *PeekReadCloser {
- return &PeekReadCloser{
- ReadCloser: rc,
- recordMode: true, // recording mode by default
- recordBuf: bytes.NewBuffer(make([]byte, 0, 1024)),
- recordMaxBuf: maxBufSize,
- }
-}