getter

package
v0.29.13 Latest Latest
Warning

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

Go to latest
Published: Oct 16, 2024 License: Apache-2.0 Imports: 11 Imported by: 1

Documentation

Overview

Package getter provides a generalize tool for fetching data by scheme.

This provides a method by which the plugin system can load arbitrary protocol handlers based upon a URL scheme.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Constructor

type Constructor func(options ...Option) (Getter, error)

Constructor is the function for every getter which creates a specific instance according to the configuration

type Getter

type Getter interface {
	// Get file content by url string
	Get(url string, options ...Option) (*bytes.Reader, error)
}

Getter is an interface to support GET to the specified URL.

func NewHTTPGetter

func NewHTTPGetter(options ...Option) (Getter, error)

NewHTTPGetter constructs a valid http/https client as a Getter

type HTTPGetter

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

HTTPGetter is the efault HTTP(/S) backend handler

func (*HTTPGetter) Get

func (g *HTTPGetter) Get(href string, options ...Option) (*bytes.Reader, error)

Get performs a Get from repo.Getter and returns the body.

type Option

type Option func(*options)

Option allows specifying various settings configurable by the user for overriding the defaults used when performing Get operations with the Getter.

func WithBasicAuth

func WithBasicAuth(username, password string) Option

WithBasicAuth sets the request's Authorization header to use the provided credentials

func WithCache

func WithCache(cache httpcache.Cache) Option

WithCache informs the getter a RFC 7234 compliant cache for http responses.

func WithTLSClientConfig

func WithTLSClientConfig(certFile, keyFile, caFile string) Option

WithTLSClientConfig sets the client client auth with the provided credentials.

func WithURL

func WithURL(url string) Option

WithURL informs the getter the server name that will be used when fetching objects. Used in conjunction with WithTLSClientConfig to set the TLSClientConfig's server name.

func WithUserAgent

func WithUserAgent(userAgent string) Option

WithUserAgent sets the request's User-Agent header to use the provided agent name.

type Provider

type Provider struct {
	Schemes []string
	New     Constructor
}

Provider represents any getter and the schemes that it supports.

For example, an HTTP provider may provide one getter that handles both 'http' and 'https' schemes.

func (Provider) Provides

func (p Provider) Provides(scheme string) bool

Provides returns true if the given scheme is supported by this Provider.

type Providers

type Providers []Provider

Providers is a collection of Provider objects.

func All

func All() Providers

All finds all of the registered getters as a list of Provider instances. Currently, the built-in getters and the discovered plugins with downloader notations are collected.

func (Providers) ByScheme

func (p Providers) ByScheme(scheme string) (Getter, error)

ByScheme returns a Provider that handles the given scheme.

If no provider handles this scheme, this will return an error.

Jump to

Keyboard shortcuts

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