Documentation ¶
Overview ¶
Package fetcher provides means for plugins and engines to fetch resources with generic references. Hence, the format for reference is consistent across plugins and engines, and we can re-use the download logic.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Context ¶
type Context interface { context.Context // Context for aborting the fetch operation Queue() client.Queue // Client with credentials covering Fetcher.Scopes() // Print a progress report that looks somewhat like this: // "Fetching <description> - <percent> %" // Progress reports won't be sent more than once every 10 seconds. Progress(description string, percent float64) }
Context for fetching resource from a reference.
type Fetcher ¶
type Fetcher interface { // Schema for references, should **only** match this type Schema() schematypes.Schema // Unique key for a reference (reference must validate against schema) // // Useful for caching resources. HashKey(reference interface{}) string // List of scope-sets that could grant access to the reference. // Tasks using a cached instance of this resources should satisfy at-least // one of these scope-sets. // // Returns [][]string{[]string{}} if no scopes are required. Scopes(reference interface{}) [][]string // Fetch a reference to a target, sending progress to Context as well // as returning a human readable error message, if fetching fails. Fetch(context Context, reference interface{}, target WriteSeekReseter) error }
A Fetcher specifies a schema for references that it knows how to fetch. It also provides a method to generate a HashKey for each valid reference, as well as a list of scopes required for a task to use a reference.
var URL Fetcher = urlFetcher{}
URL is Fetcher for downloading files from a URL.
type FileReseter ¶
FileReseter implements WriteSeekReseter for an *os.File instance
func (*FileReseter) Reset ¶
func (f *FileReseter) Reset() error
Reset will truncate the file and seek to the beginning.