working commit

This commit is contained in:
2026-03-10 15:16:24 +02:00
parent 338638337d
commit f85cda868a
2 changed files with 12 additions and 11 deletions
+6 -10
View File
@@ -99,16 +99,16 @@ func (ima *Imager) ReadManifest(ctx context.Context, digstr string) (bool, strin
if err != nil { if err != nil {
return exist, mime, man, err return exist, mime, man, err
} }
var size int64
for _, descr := range ima.index.Manifests { for _, descr := range ima.index.Manifests {
if digstr == descr.Digest.Encoded() { if digstr == descr.Digest.String() {
size = descr.Size
mime = descr.MediaType mime = descr.MediaType
exist = true exist = true
} }
} }
if !exist {
err = errors.New("Manifest not found in index")
return exist, mime, man, err
}
subdir := string(digobj.Algorithm()) subdir := string(digobj.Algorithm())
mpath := filepath.Join(ima.place, ocispec.ImageBlobsDir, subdir, digobj.Encoded()) mpath := filepath.Join(ima.place, ocispec.ImageBlobsDir, subdir, digobj.Encoded())
mfile, err := os.OpenFile(mpath, os.O_RDONLY, 0) mfile, err := os.OpenFile(mpath, os.O_RDONLY, 0)
@@ -120,12 +120,8 @@ func (ima *Imager) ReadManifest(ctx context.Context, digstr string) (bool, strin
buffer := bytes.NewBuffer(nil) buffer := bytes.NewBuffer(nil)
verifier := digobj.Verifier() verifier := digobj.Verifier()
mwriter := io.MultiWriter(verifier, buffer) mwriter := io.MultiWriter(verifier, buffer)
readsize, err := io.Copy(mwriter, mfile) _, err = io.Copy(mwriter, mfile)
man = buffer.Bytes() man = buffer.Bytes()
if size != readsize {
err = errors.New("Mismatch manigest sizes")
return exist, mime, man, err
}
if !verifier.Verified() { if !verifier.Verified() {
err = errors.New("Mismatch manifest digests") err = errors.New("Mismatch manifest digests")
return exist, mime, man, err return exist, mime, man, err
+6 -1
View File
@@ -20,7 +20,12 @@ func (down *Loader) Push(ctx context.Context, rawref, dir, osname, arch string)
} }
index := imager.Index() index := imager.Index()
for _, descr := range index.Manifests { for _, descr := range index.Manifests {
_, _, mandata, err := imager.ReadManifest(ctx, descr.Digest.Encoded()) digstr := descr.Digest.String()
_, _, mandata, err := imager.ReadManifest(ctx, digstr)
if err != nil {
return err
}
man := &ocispec.Manifest{} man := &ocispec.Manifest{}
err = json.Unmarshal(mandata, man) err = json.Unmarshal(mandata, man)
if err != nil { if err != nil {