aboutsummaryrefslogtreecommitdiff
path: root/objectstore/loose/write_reader.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-04 08:26:56 +0800
committerGravatar Runxi Yu2026-03-04 08:59:53 +0800
commitab7501be34032fb9e5c48726a68ae90a917af9eb (patch)
tree20d005647569befea8133e953c3270e8fd2a2a5b /objectstore/loose/write_reader.go
parent*: gofumpt (diff)
signatureNo signature
*: Lint
Diffstat (limited to 'objectstore/loose/write_reader.go')
-rw-r--r--objectstore/loose/write_reader.go17
1 files changed, 14 insertions, 3 deletions
diff --git a/objectstore/loose/write_reader.go b/objectstore/loose/write_reader.go
index b2329f02..9dbf3818 100644
--- a/objectstore/loose/write_reader.go
+++ b/objectstore/loose/write_reader.go
@@ -27,12 +27,15 @@ func (store *Store) WriteReaderContent(ty objecttype.Type, size int64, src io.Re
if err != nil {
return objectid.ObjectID{}, err
}
+
writer.headerDone = true
writer.expectedContentLeft = size
- if err := writer.writeRawChunk(header); err != nil {
+ err = writer.writeRawChunk(header)
+ if err != nil {
_ = writer.Close()
_ = store.root.Remove(writer.tmpRelPath)
+
return objectid.ObjectID{}, err
}
@@ -46,25 +49,33 @@ func (store *Store) WriteReaderFull(src io.Reader) (objectid.ObjectID, error) {
if err != nil {
return objectid.ObjectID{}, err
}
+
return writeReaderIntoStreamWriter(writer, src)
}
// writeReaderIntoStreamWriter copies src into writer and publishes the object.
func writeReaderIntoStreamWriter(writer *streamWriter, src io.Reader) (objectid.ObjectID, error) {
- if _, err := io.Copy(writer, src); err != nil {
+ _, err := io.Copy(writer, src)
+ if err != nil {
_ = writer.Close()
_ = writer.store.root.Remove(writer.tmpRelPath)
+
return objectid.ObjectID{}, err
}
- if err := writer.Close(); err != nil {
+
+ err = writer.Close()
+ if err != nil {
_ = writer.store.root.Remove(writer.tmpRelPath)
+
return objectid.ObjectID{}, err
}
id, err := writer.finalize()
if err != nil {
_ = writer.store.root.Remove(writer.tmpRelPath)
+
return objectid.ObjectID{}, err
}
+
return id, nil
}