package remote

import "github.com/containerd/stargz-snapshotter/fs/remote"

Index

Types

type Blob

type Blob interface {
	Check() error
	Size() int64
	FetchedSize() int64
	ReadAt(p []byte, offset int64, opts ...Option) (int, error)
	Cache(offset int64, size int64, opts ...Option) error
	Refresh(ctx context.Context, host source.RegistryHosts, refspec reference.Spec, desc ocispec.Descriptor) error
	Close() error
}

type Fetcher

type Fetcher interface {
	Fetch(ctx context.Context, off int64, size int64) (io.ReadCloser, error)
	Check() error
	GenID(off int64, size int64) string
}

type Handler

type Handler interface {
	Handle(ctx context.Context, desc ocispec.Descriptor) (fetcher Fetcher, size int64, err error)
}

type Option

type Option func(*options)

func WithCacheOpts

func WithCacheOpts(cacheOpts ...cache.Option) Option

func WithContext

func WithContext(ctx context.Context) Option

type Resolver

type Resolver struct {
	// contains filtered or unexported fields
}

func NewResolver

func NewResolver(cfg config.BlobConfig, handlers map[string]Handler) *Resolver

func (*Resolver) Resolve

func (r *Resolver) Resolve(ctx context.Context, hosts source.RegistryHosts, refspec reference.Spec, desc ocispec.Descriptor, blobCache cache.BlobCache) (Blob, error)

Source Files

blob.go resolver.go util.go

Version
v0.16.3 (latest)
Published
Dec 12, 2024
Platform
linux/amd64
Imports
30 packages
Last checked
2 weeks ago

Tools for package owners.