in ecr/fetcher.go [49:80]
func (f *ecrFetcher) Fetch(ctx context.Context, desc ocispec.Descriptor) (io.ReadCloser, error) {
ctx = log.WithLogger(ctx, log.G(ctx).WithField("desc", desc))
log.G(ctx).Debug("ecr.fetch")
// need to do different things based on the media type
switch desc.MediaType {
case
images.MediaTypeDockerSchema1Manifest,
images.MediaTypeDockerSchema2Manifest,
images.MediaTypeDockerSchema2ManifestList,
ocispec.MediaTypeImageIndex,
ocispec.MediaTypeImageManifest:
return f.fetchManifest(ctx, desc)
case
images.MediaTypeDockerSchema2Layer,
images.MediaTypeDockerSchema2LayerGzip,
images.MediaTypeDockerSchema2Config,
ocispec.MediaTypeImageLayerGzip,
ocispec.MediaTypeImageLayer,
ocispec.MediaTypeImageConfig:
return f.fetchLayer(ctx, desc)
case
images.MediaTypeDockerSchema2LayerForeign,
images.MediaTypeDockerSchema2LayerForeignGzip:
return f.fetchForeignLayer(ctx, desc)
default:
log.G(ctx).
WithField("media type", desc.MediaType).
Error("ecr.fetcher: unimplemented media type")
return nil, unimplemented
}
}