gcs

package
v0.4.5 Latest Latest
Warning

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

Go to latest
Published: Jan 23, 2022 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package gcs implements a blob store on Google Cloud Storage.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Store

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

Store is a Google Cloud Storage-based implementation of a blob store. All blobs and other information are stored in a single GCS bucket.

A blob with ref R is stored in a bucket object named b:hex(R) (where hex(R) denotes the hexadecimal encoding of R).

The anchor map ref is stored in a bucket object named anchormapref.

func New

func New(bucket *storage.BucketHandle) *Store

New produces a new Store.

func (*Store) AnchorMapRef

func (s *Store) AnchorMapRef(ctx context.Context) (bs.Ref, error)

AnchorMapRef implements anchor.Getter.

func (*Store) Get

func (s *Store) Get(ctx context.Context, ref bs.Ref) (bs.Blob, error)

Get gets the blob with hash `ref`.

func (*Store) ListRefs

func (s *Store) ListRefs(ctx context.Context, start bs.Ref, f func(bs.Ref) error) error

ListRefs produces all blob refs in the store, in lexicographic order.

func (*Store) Put

func (s *Store) Put(ctx context.Context, b bs.Blob) (bs.Ref, bool, error)

Put adds a blob to the store if it wasn't already present.

func (*Store) UpdateAnchorMap

func (s *Store) UpdateAnchorMap(ctx context.Context, f anchor.UpdateFunc) error

UpdateAnchorMap implements anchor.Store.

Jump to

Keyboard shortcuts

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