diff --git a/server/upload.go b/server/upload.go index 8b483618..306b6e63 100644 --- a/server/upload.go +++ b/server/upload.go @@ -77,6 +77,14 @@ func (b *blobUpload) Prepare(ctx context.Context, requestURL *url.URL, opts *Reg b.Total = fi.Size() + // http.StatusCreated indicates a blob has been mounted + // ref: https://distribution.github.io/distribution/spec/api/#cross-repository-blob-mount + if resp.StatusCode == http.StatusCreated { + b.Completed.Store(b.Total) + b.done = true + return nil + } + var size = b.Total / numUploadParts switch { case size < minUploadPartSize: