Add WriterTo
diff --git a/private/pkg/storage/storagemem/read_object_closer.go b/private/pkg/storage/storagemem/read_object_closer.go index 74817ff..c092670 100644 --- a/private/pkg/storage/storagemem/read_object_closer.go +++ b/private/pkg/storage/storagemem/read_object_closer.go
@@ -16,6 +16,7 @@ import ( "bytes" + "io" "github.com/bufbuild/buf/private/pkg/storage" "github.com/bufbuild/buf/private/pkg/storage/storagemem/internal" @@ -49,6 +50,13 @@ return r.reader.Read(p) } +func (r *readObjectCloser) WriteTo(w io.Writer) (int64, error) { + if r.closed { + return 0, storage.ErrClosed + } + return r.reader.WriteTo(w) +} + func (r *readObjectCloser) Close() error { if r.closed { return storage.ErrClosed
diff --git a/private/pkg/storage/storageos/bucket.go b/private/pkg/storage/storageos/bucket.go index e46cb35..71cf82f 100644 --- a/private/pkg/storage/storageos/bucket.go +++ b/private/pkg/storage/storageos/bucket.go
@@ -17,6 +17,7 @@ import ( "context" "errors" + "io" "io/fs" "os" "path/filepath" @@ -374,6 +375,11 @@ return n, toStorageError(err) } +func (r *readObjectCloser) WriteTo(w io.Writer) (int64, error) { + n, err := r.file.WriteTo(w) + return n, toStorageError(err) +} + func (r *readObjectCloser) Close() error { return toStorageError(r.file.Close()) }