Help us shape the future of Go! Take the 2026 Go Developer Survey

remote

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 22, 2026 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUnexpectedStatusCode      = errors.New("unexpected status code")
	ErrFailedToRetrieveLayerSize = errors.New("failed to retrieve layer size from remote")
	ErrInvalidHost               = errors.New("invalid host destination")
	ErrFailedToRedirect          = errors.New("failed to redirect")
	ErrUnableToCreateFetcher     = errors.New("unable to create remote fetcher")
	ErrNoRegion                  = errors.New("no regions to fetch")
	ErrCannotParseContentLength  = errors.New("failed to parse Content-Length header")
	ErrCannotParseContentRange   = errors.New("failed to parse Content-Range header")
	ErrCannotParseContentType    = errors.New("failed to parse Content-Type header")
	ErrFailedToRefreshURL        = errors.New("failed to refresh URL")
	ErrRequestFailed             = errors.New("request to registry failed")
)

Functions

func CraftBlobURL

func CraftBlobURL(reference string, ref registry.Reference) string

func GetHeader

func GetHeader(ctx context.Context, realURL string, rt http.RoundTripper) (*http.Response, error)

func GetHeaderWithGet

func GetHeaderWithGet(ctx context.Context, realURL string, rt http.RoundTripper) (*http.Response, error)

GetHeaderWithGet is identical to GetHeader, but strictly uses GET requests in its attempts

func ParseSize

func ParseSize(resp *http.Response) (int64, error)

Types

type Blob

type Blob interface {
	Check() error
	Size() int64
	FetchedSize() int64
	ReadAt(p []byte, offset int64, opts ...Option) (int, error)
	Refresh(ctx context.Context, hosts []docker.RegistryHost, 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 []docker.RegistryHost, refspec reference.Spec, desc ocispec.Descriptor) (Blob, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL