diff --git a/pkg/fetcher/fetcher_archive.go b/pkg/fetcher/fetcher_archive.go index 0b3f476..7afd95e 100644 --- a/pkg/fetcher/fetcher_archive.go +++ b/pkg/fetcher/fetcher_archive.go @@ -44,7 +44,14 @@ func (f *ArchiveFetcher) Links(ctx context.Context) (manifest.LinkList, error) { // Get implements Fetcher func (f *ArchiveFetcher) Get(ctx context.Context, link manifest.Link) Resource { - entry, err := f.archive.Entry(link.Href.String()) + // use decoded path for archive entry lookup to support files with spaces and special characters + var entryPath string + if hrefURL := link.Href.Resolve(nil, nil); hrefURL != nil { + entryPath = hrefURL.Path() + } else { + entryPath = link.Href.String() + } + entry, err := f.archive.Entry(entryPath) if err != nil { return NewFailureResource(link, NotFound(err)) }