diff --git a/pkg/storage/imagestore/imagestore.go b/pkg/storage/imagestore/imagestore.go index 4ae27ae4c..790e31a3a 100644 --- a/pkg/storage/imagestore/imagestore.go +++ b/pkg/storage/imagestore/imagestore.go @@ -943,7 +943,9 @@ func (is *ImageStore) PutBlobChunk(repo, uuid string, from, to int64, defer file.Close() - if from != file.Size() { + fsize := file.Size() + + if from != fsize { is.log.Error().Int64("expected", from).Int64("actual", file.Size()). Msg("invalid range start for blob upload") @@ -952,7 +954,7 @@ func (is *ImageStore) PutBlobChunk(repo, uuid string, from, to int64, n, err := io.Copy(file, body) - return n, err + return n + fsize, err } // BlobUploadInfo returns the current blob size in bytes. diff --git a/pkg/storage/storage_test.go b/pkg/storage/storage_test.go index caff80171..12eca9a65 100644 --- a/pkg/storage/storage_test.go +++ b/pkg/storage/storage_test.go @@ -493,7 +493,7 @@ func TestStorageAPIs(t *testing.T) { bupload, err = imgStore.PutBlobChunk("test", upload, int64(firstChunkLen), int64(buflen), secondChunkBuf) So(err, ShouldBeNil) - So(bupload, ShouldEqual, secondChunkLen) + So(bupload, ShouldEqual, int64(firstChunkLen+secondChunkLen)) err = imgStore.FinishBlobUpload("test", upload, buf, digest) So(err, ShouldBeNil)