// proxyStat attempts to locate the digest in the provided remote repository or returns an error. If the digest is found, // r.digestToStore saves the store. func (r *pullthroughBlobStore) proxyStat(ctx context.Context, retriever importer.RepositoryRetriever, ref imageapi.DockerImageReference, dgst digest.Digest) (distribution.Descriptor, error) { context.GetLogger(r.repo.ctx).Infof("Trying to stat %q from %q", dgst, ref.Exact()) repo, err := retriever.Repository(ctx, ref.RegistryURL(), ref.RepositoryName(), false) if err != nil { context.GetLogger(r.repo.ctx).Errorf("Error getting remote repository for image %q: %v", ref.Exact(), err) return distribution.Descriptor{}, err } pullthroughBlobStore := repo.Blobs(ctx) desc, err := pullthroughBlobStore.Stat(r.repo.ctx, dgst) if err != nil { if err != distribution.ErrBlobUnknown { context.GetLogger(r.repo.ctx).Errorf("Error getting pullthroughBlobStore for image %q: %v", ref.Exact(), err) } return distribution.Descriptor{}, err } r.digestToStore[dgst.String()] = pullthroughBlobStore return desc, nil }