From dbcfe13fb65cdfc361b0bacc9d34c49404a23c1a Mon Sep 17 00:00:00 2001 From: Adam Martin Date: Thu, 15 Feb 2024 19:55:38 -0500 Subject: [PATCH] bug-fix: handle complex file names Signed-off-by: Adam Martin --- pkg/artifacts/file/getter/https.go | 7 ++++++- pkg/reference/reference.go | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pkg/artifacts/file/getter/https.go b/pkg/artifacts/file/getter/https.go index 3fb1128..2df29d1 100644 --- a/pkg/artifacts/file/getter/https.go +++ b/pkg/artifacts/file/getter/https.go @@ -25,6 +25,11 @@ func (h Http) Name(u *url.URL) string { return "" } + name, _ := url.PathUnescape(u.String()) + if err != nil { + return "" + } + contentType := resp.Header.Get("Content-Type") for _, v := range strings.Split(contentType, ",") { t, _, err := mime.ParseMediaType(v) @@ -36,7 +41,7 @@ func (h Http) Name(u *url.URL) string { } // TODO: Not this - return filepath.Base(u.String()) + return filepath.Base(name) } func (h Http) Open(ctx context.Context, u *url.URL) (io.ReadCloser, error) { diff --git a/pkg/reference/reference.go b/pkg/reference/reference.go index f319482..22fb8a9 100644 --- a/pkg/reference/reference.go +++ b/pkg/reference/reference.go @@ -25,6 +25,7 @@ type Reference interface { // NewTagged will create a new docker.NamedTagged given a path-component func NewTagged(n string, tag string) (gname.Reference, error) { + n = strings.Replace(strings.ToLower(n), "+", "-", -1) repo, err := Parse(n) if err != nil { return nil, err