gs

package
v0.16.1 Latest Latest
Warning

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

Go to latest
Published: Oct 24, 2023 License: BSD-2-Clause Imports: 22 Imported by: 0

Documentation

Overview

Package gs provides a restic backend for Google Cloud Storage.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Create

func Create(ctx context.Context, cfg Config, rt http.RoundTripper) (restic.Backend, error)

Create opens the gs backend at the specified bucket and attempts to creates the bucket if it does not exist yet.

The service account must have the "storage.buckets.create" permission to create a bucket the does not yet exist.

func NewFactory added in v0.16.0

func NewFactory() location.Factory

func Open

Open opens the gs backend at the specified bucket.

Types

type Backend

type Backend struct {
	layout.Layout
	// contains filtered or unexported fields
}

Backend stores data in a GCS bucket.

The service account used to access the bucket must have these permissions:

  • storage.objects.create
  • storage.objects.delete
  • storage.objects.get
  • storage.objects.list

func (*Backend) Close

func (be *Backend) Close() error

Close does nothing.

func (*Backend) Connections added in v0.14.0

func (be *Backend) Connections() uint

func (*Backend) Delete

func (be *Backend) Delete(ctx context.Context) error

Delete removes all restic keys in the bucket. It will not remove the bucket itself.

func (*Backend) HasAtomicReplace added in v0.14.0

func (be *Backend) HasAtomicReplace() bool

HasAtomicReplace returns whether Save() can atomically replace files

func (*Backend) Hasher added in v0.13.0

func (be *Backend) Hasher() hash.Hash

Hasher may return a hash function for calculating a content hash for the backend

func (*Backend) IsNotExist

func (be *Backend) IsNotExist(err error) bool

IsNotExist returns true if the error is caused by a not existing file.

func (*Backend) Join

func (be *Backend) Join(p ...string) string

Join combines path components with slashes.

func (*Backend) List

func (be *Backend) List(ctx context.Context, t restic.FileType, fn func(restic.FileInfo) error) error

List runs fn for each file in the backend which has the type t. When an error occurs (or fn returns an error), List stops and returns it.

func (*Backend) Load

func (be *Backend) Load(ctx context.Context, h restic.Handle, length int, offset int64, fn func(rd io.Reader) error) error

Load runs fn with a reader that yields the contents of the file at h at the given offset.

func (*Backend) Location

func (be *Backend) Location() string

Location returns this backend's location (the bucket name).

func (*Backend) Path

func (be *Backend) Path() string

Path returns the path in the bucket that is used for this backend.

func (*Backend) Remove

func (be *Backend) Remove(ctx context.Context, h restic.Handle) error

Remove removes the blob with the given name and type.

func (*Backend) Save

Save stores data in the backend at the handle.

func (*Backend) SetListMaxItems added in v0.7.3

func (be *Backend) SetListMaxItems(i int)

SetListMaxItems sets the number of list items to load per request.

func (*Backend) Stat

func (be *Backend) Stat(ctx context.Context, h restic.Handle) (bi restic.FileInfo, err error)

Stat returns information about a blob.

type Config

type Config struct {
	ProjectID string
	Bucket    string
	Prefix    string

	Connections uint   `option:"connections" help:"set a limit for the number of concurrent connections (default: 5)"`
	Region      string `option:"region" help:"region to create the bucket in (default: us)"`
}

Config contains all configuration necessary to connect to a Google Cloud Storage bucket. We use Google's default application credentials to acquire an access token, so we don't require that calling code supply any authentication material here.

func NewConfig

func NewConfig() Config

NewConfig returns a new Config with the default values filled in.

func ParseConfig

func ParseConfig(s string) (*Config, error)

ParseConfig parses the string s and extracts the gcs config. The supported configuration format is gs:bucketName:/[prefix].

func (*Config) ApplyEnvironment added in v0.16.0

func (cfg *Config) ApplyEnvironment(prefix string)

ApplyEnvironment saves values from the environment to the config.

Jump to

Keyboard shortcuts

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