feat: add policy.downloadLocation
This commit is contained in:
@@ -81,7 +81,7 @@ func NewRegistryFetcher(metadataRepo, metadataTag, targetsRepo string) *Registry
|
||||
func (d *RegistryFetcher) DownloadFile(urlPath string, maxLength int64, timeout time.Duration) ([]byte, error) {
|
||||
d.timeout = timeout
|
||||
|
||||
imgRef, fileName, err := d.ParseImgRef(urlPath)
|
||||
imgRef, fileName, err := d.parseImgRef(urlPath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -186,7 +186,7 @@ func getDataFromLayer(fileLayer v1.Layer, maxLength int64) ([]byte, error) {
|
||||
}
|
||||
|
||||
// parseImgRef maintains the Fetcher interface by parsing a URL path to an image reference and file name.
|
||||
func (d *RegistryFetcher) ParseImgRef(urlPath string) (imgRef, fileName string, err error) {
|
||||
func (d *RegistryFetcher) parseImgRef(urlPath string) (imgRef, fileName string, err error) {
|
||||
// Check if repo is target or metadata
|
||||
if strings.Contains(urlPath, d.targetsRepo) {
|
||||
// determine if the target path contains subdirectories and set image name accordingly
|
||||
|
||||
@@ -206,7 +206,7 @@ func TestParseImgRef(t *testing.T) {
|
||||
metadataTag: LatestTag,
|
||||
targetsRepo: targetsRepo,
|
||||
}
|
||||
imgRef, file, err := d.ParseImgRef(tc.ref)
|
||||
imgRef, file, err := d.parseImgRef(tc.ref)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, tc.expectedRef, imgRef)
|
||||
assert.Equal(t, tc.expectedFile, file)
|
||||
|
||||
@@ -144,11 +144,7 @@ func (t *Client) generateTargetURI(target *metadata.TargetFiles, digest string)
|
||||
|
||||
switch fetcher := t.cfg.Fetcher.(type) {
|
||||
case *RegistryFetcher:
|
||||
ref, _, err := fetcher.ParseImgRef(fullURL)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("failed to parse image reference: %w", err)
|
||||
}
|
||||
return ref, nil
|
||||
return fmt.Sprintf("%s@sha256:%s", t.cfg.RemoteTargetsURL, digest), nil
|
||||
case *fetcher.DefaultFetcher:
|
||||
return fullURL, nil
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user