code: func (repo *repository) Blobs(ctx context.Context) distribution.BlobStore {
  	var statter distribution.BlobDescriptorService = &linkedBlobStatter{
  		blobStore:   repo.blobStore,
  		repository:  repo,
  		linkPathFns: []linkPathFunc{blobLinkPath},
  	}
  
  	if repo.descriptorCache != nil {
  		statter = cache.NewCachedBlobStatter(repo.descriptorCache, statter)
  	}
  
  	if repo.registry.blobDescriptorServiceFactory != nil {
  		statter = repo.registry.blobDescriptorServiceFactory.BlobAccessController(statter)
  	}
  
  	return &linkedBlobStore{
  		registry:             repo.registry,
  		blobStore:            repo.blobStore,
  		blobServer:           repo.blobServer,
  		blobAccessController: statter,
  		repository:           repo,
  		ctx:                  ctx,
  
  		// TODO(stevvooe): linkPath limits this blob store to only layers.
  		// This instance cannot be used for manifest checks.
  		linkPathFns:            []linkPathFunc{blobLinkPath},
  		deleteEnabled:          repo.registry.deleteEnabled,
  		resumableDigestEnabled: repo.resumableDigestEnabled,
  	}
  }
docs: // Blobs returns an instance of the BlobStore. Instantiation is cheap and
  // may be context sensitive in the future. The instance should be used similar
  // to a request local.