Documentation ¶
Overview ¶
Package gcs implements common object storage abstractions against Google Cloud Storage.
Index ¶
- Constants
- Variables
- func NewTestBucket(t testing.TB, project string) (objstore.Bucket, func(), error)
- type Bucket
- func (b *Bucket) Attributes(ctx context.Context, name string) (objstore.ObjectAttributes, error)
- func (b *Bucket) Close() error
- func (b *Bucket) Delete(ctx context.Context, name string) error
- func (b *Bucket) Exists(ctx context.Context, name string) (bool, error)
- func (b *Bucket) Get(ctx context.Context, name string) (io.ReadCloser, error)
- func (b *Bucket) GetRange(ctx context.Context, name string, off, length int64) (io.ReadCloser, error)
- func (b *Bucket) Handle() *storage.BucketHandle
- func (b *Bucket) IsAccessDeniedErr(err error) bool
- func (b *Bucket) IsObjNotFoundErr(err error) bool
- func (b *Bucket) Iter(ctx context.Context, dir string, f func(string) error, ...) error
- func (b *Bucket) Name() string
- func (b *Bucket) Upload(ctx context.Context, name string, r io.Reader) error
- type Config
Constants ¶
const DirDelim = "/"
DirDelim is the delimiter used to model a directory structure in an object store bucket.
Variables ¶
var DefaultConfig = Config{ HTTPConfig: exthttp.DefaultHTTPConfig, }
Functions ¶
Types ¶
type Bucket ¶
type Bucket struct {
// contains filtered or unexported fields
}
Bucket implements the store.Bucket and shipper.Bucket interfaces against GCS.
func NewBucket ¶
func NewBucket(ctx context.Context, logger log.Logger, conf []byte, component string) (*Bucket, error)
NewBucket returns a new Bucket against the given bucket handle.
func NewBucketWithConfig ¶
func NewBucketWithConfig(ctx context.Context, logger log.Logger, gc Config, component string) (*Bucket, error)
NewBucketWithConfig returns a new Bucket with gcs Config struct.
func (*Bucket) Attributes ¶
Attributes returns information about the specified object.
func (*Bucket) GetRange ¶
func (b *Bucket) GetRange(ctx context.Context, name string, off, length int64) (io.ReadCloser, error)
GetRange returns a new range reader for the given object name and range.
func (*Bucket) Handle ¶
func (b *Bucket) Handle() *storage.BucketHandle
Handle returns the underlying GCS bucket handle. Used for testing purposes (we return handle, so it is not instrumented).
func (*Bucket) IsAccessDeniedErr ¶
IsAccessDeniedErr returns true if access to object is denied.
func (*Bucket) IsObjNotFoundErr ¶
IsObjNotFoundErr returns true if error means that object is not found. Relevant to Get operations.
type Config ¶
type Config struct { Bucket string `yaml:"bucket"` ServiceAccount string `yaml:"service_account"` UseGRPC bool `yaml:"use_grpc"` // GRPCConnPoolSize controls the size of the gRPC connection pool and should only be used // when direct path is not enabled. // See https://pkg.go.dev/cloud.google.com/go/storage#hdr-Experimental_gRPC_API for more details // on how to enable direct path. GRPCConnPoolSize int `yaml:"grpc_conn_pool_size"` HTTPConfig exthttp.HTTPConfig `yaml:"http_config"` // ChunkSizeBytes controls the maximum number of bytes of the object that the // Writer will attempt to send to the server in a single request // Used as storage.Writer.ChunkSize of https://pkg.go.dev/google.golang.org/cloud/storage#Writer ChunkSizeBytes int `yaml:"chunk_size_bytes"` }
Config stores the configuration for gcs bucket.