storage

package
v0.8.1 Latest Latest
Warning

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

Go to latest
Published: Mar 27, 2020 License: MIT Imports: 5 Imported by: 27

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Backend

type Backend interface {
	Lister
	Getter
	Checker
	Saver
	Deleter
}

Backend is a complete storage backend (i.e. file system, database) implementation - a lister, reader and saver

type Cataloger added in v0.3.0

type Cataloger interface {
	// Catalog gets all the modules / versions.
	Catalog(ctx context.Context, token string, pageSize int) ([]paths.AllPathParams, string, error)
}

Cataloger is the interface that lists all the modules and version contained in the storage

type Checker

type Checker interface {
	// Exists checks whether or not module in specified version is present
	// in the backing storage
	Exists(ctx context.Context, module, version string) (bool, error)
}

Checker is the interface that checks if the version of the module exists

type Deleter

type Deleter interface {
	// Delete must return ErrNotFound if the module/version are not
	// found.
	Delete(ctx context.Context, module, vsn string) error
}

Deleter deletes module metadata and its source from underlying storage

type Getter

type Getter interface {
	Info(ctx context.Context, module, vsn string) ([]byte, error)
	GoMod(ctx context.Context, module, vsn string) ([]byte, error)
	Zip(ctx context.Context, module, vsn string) (io.ReadCloser, error)
}

Getter gets module metadata and its source from underlying storage

type Lister

type Lister interface {
	// List gets all the versions for the given baseURL & module.
	// It returns ErrNotFound if the module isn't found
	List(ctx context.Context, module string) ([]string, error)
}

Lister is the interface that lists versions of a specific baseURL & module

type Module

type Module struct {
	ID      primitive.ObjectID `bson:"_id,omitempty"`
	Module  string             `bson:"module"`
	Version string             `bson:"version"`
	Mod     []byte             `bson:"mod"`
	Zip     []byte             `bson:"zip"`
	Info    []byte             `bson:"info"`
}

Module represents a vgo module saved in a storage backend.

type Reader

type Reader struct {
	Lister
	Getter
	Checker
}

Reader lists all module versions and gets a specific one from the underlying backend.

type RevInfo

type RevInfo struct {
	Version string    `json:"Version"` // version string
	Time    time.Time `json:"Time"`    // commit time
}

RevInfo is json-encodable into the response body for GET baseURL/module/@v/version.info

This struct is taken directly from https://research.swtch.com/vgo-module (see "Download Protocol" header)

type Saver

type Saver interface {
	Save(ctx context.Context, module, version string, mod []byte, zip io.Reader, info []byte) error
}

Saver saves module metadata and its source to underlying storage

type Version

type Version struct {
	Mod    []byte
	Zip    io.ReadCloser
	Info   []byte
	Semver string
}

Version represents a version of a module and contains .mod file, a .info file and zip file of a specific version

Directories

Path Synopsis
Package gcp provides a storage driver to upload module files to a google cloud platform storage bucket.
Package gcp provides a storage driver to upload module files to a google cloud platform storage bucket.
Package s3 provides a storage driver to upload module files to amazon s3 storage bucket.
Package s3 provides a storage driver to upload module files to amazon s3 storage bucket.

Jump to

Keyboard shortcuts

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