Skip to content

Commit 0e8f74b

Browse files
committed
cmd/oci-image-tool: replace colon with hyphen to get blobs by digest
Signed-off-by: Antonio Murdaca <[email protected]>
1 parent 45e8036 commit 0e8f74b

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

image/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ type config struct {
5151

5252
func findConfig(w walker, d *descriptor) (*config, error) {
5353
var c config
54-
cpath := filepath.Join("blobs", d.Digest)
54+
cpath := filepath.Join("blobs", d.getDigest())
5555

5656
f := func(path string, info os.FileInfo, r io.Reader) error {
5757
if info.IsDir() {

image/descriptor.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"io"
2323
"os"
2424
"path/filepath"
25+
"strings"
2526

2627
"github.com/pkg/errors"
2728
)
@@ -32,6 +33,10 @@ type descriptor struct {
3233
Size int64 `json:"size"`
3334
}
3435

36+
func (d *descriptor) getDigest() string {
37+
return strings.Replace(d.Digest, ":", "-", -1)
38+
}
39+
3540
func findDescriptor(w walker, name string) (*descriptor, error) {
3641
var d descriptor
3742
dpath := filepath.Join("refs", name)
@@ -71,7 +76,7 @@ func (d *descriptor) validate(w walker) error {
7176
}
7277

7378
digest, err := filepath.Rel("blobs", filepath.Clean(path))
74-
if err != nil || d.Digest != digest {
79+
if err != nil || d.getDigest() != digest {
7580
return nil // ignore
7681
}
7782

@@ -84,11 +89,11 @@ func (d *descriptor) validate(w walker) error {
8489

8590
switch err := w.walk(f); err {
8691
case nil:
87-
return fmt.Errorf("%s: not found", d.Digest)
92+
return fmt.Errorf("%s: not found", d.getDigest())
8893
case errEOW:
8994
// found, continue below
9095
default:
91-
return errors.Wrapf(err, "%s: validation failed", d.Digest)
96+
return errors.Wrapf(err, "%s: validation failed", d.getDigest())
9297
}
9398

9499
return nil

image/manifest.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ type manifest struct {
3838

3939
func findManifest(w walker, d *descriptor) (*manifest, error) {
4040
var m manifest
41-
mpath := filepath.Join("blobs", d.Digest)
41+
mpath := filepath.Join("blobs", d.getDigest())
4242

4343
f := func(path string, info os.FileInfo, r io.Reader) error {
4444
if info.IsDir() {

0 commit comments

Comments
 (0)