code: func (c *client) MountBlob(ctx context.Context, sourceRef reference.Canonical, targetRef reference.Named) error {
  	repoEndpoint, err := newDefaultRepositoryEndpoint(targetRef, c.insecureRegistry)
  	if err != nil {
  		return err
  	}
  	repo, err := c.getRepositoryForReference(ctx, targetRef, repoEndpoint)
  	if err != nil {
  		return err
  	}
  	lu, err := repo.Blobs(ctx).Create(ctx, distributionclient.WithMountFrom(sourceRef))
  	switch err.(type) {
  	case distribution.ErrBlobMounted:
  		logrus.Debugf("mount of blob %s succeeded", sourceRef)
  		return nil
  	case nil:
  	default:
  		return errors.Wrapf(err, "failed to mount blob %s to %s", sourceRef, targetRef)
  	}
  	lu.Cancel(ctx)
  	logrus.Debugf("mount of blob %s created", sourceRef)
  	return ErrBlobCreated{From: sourceRef, Target: targetRef}
  }
docs: // MountBlob into the registry, so it can be referenced by a manifest