Documentation
¶
Index ¶
- Constants
- Variables
- func NewClient(ctx context.Context, cfg Config, name string, logger log.Logger, ...) (client objstore.Bucket, err error)
- type ClientMock
- func (m *ClientMock) Attributes(ctx context.Context, name string) (objstore.ObjectAttributes, error)
- func (m *ClientMock) Close() error
- func (m *ClientMock) Delete(ctx context.Context, name string) error
- func (m *ClientMock) Exists(ctx context.Context, name string) (bool, error)
- func (m *ClientMock) Get(ctx context.Context, name string) (io.ReadCloser, error)
- func (m *ClientMock) GetRange(ctx context.Context, name string, off, length int64) (io.ReadCloser, error)
- func (m *ClientMock) IsObjNotFoundErr(err error) bool
- func (m *ClientMock) Iter(ctx context.Context, dir string, f func(string) error) error
- func (m *ClientMock) MockDelete(name string, err error)
- func (m *ClientMock) MockExists(name string, exists bool, err error)
- func (m *ClientMock) MockGet(name, content string, err error)
- func (m *ClientMock) MockIter(prefix string, objects []string, err error)
- func (m *ClientMock) MockIterWithCallback(prefix string, objects []string, err error, cb func())
- func (m *ClientMock) Name() string
- func (m *ClientMock) Upload(ctx context.Context, name string, r io.Reader) error
- type Config
- type UserBucketClient
- func (b *UserBucketClient) Close() error
- func (b *UserBucketClient) Delete(ctx context.Context, name string) error
- func (b *UserBucketClient) Name() string
- func (b *UserBucketClient) Upload(ctx context.Context, name string, r io.Reader) error
- func (b *UserBucketClient) WithExpectedErrs(fn objstore.IsOpFailureExpectedFunc) objstore.Bucket
- type UserBucketReaderClient
- func (b *UserBucketReaderClient) Attributes(ctx context.Context, name string) (objstore.ObjectAttributes, error)
- func (b *UserBucketReaderClient) Exists(ctx context.Context, name string) (bool, error)
- func (b *UserBucketReaderClient) Get(ctx context.Context, name string) (io.ReadCloser, error)
- func (b *UserBucketReaderClient) GetRange(ctx context.Context, name string, off, length int64) (io.ReadCloser, error)
- func (b *UserBucketReaderClient) IsObjNotFoundErr(err error) bool
- func (b *UserBucketReaderClient) Iter(ctx context.Context, dir string, f func(string) error) error
- func (b *UserBucketReaderClient) ReaderWithExpectedErrs(fn objstore.IsOpFailureExpectedFunc) objstore.BucketReader
Constants ¶
const ( // S3 is the value for the S3 storage backend. S3 = "s3" // GCS is the value for the GCS storage backend. GCS = "gcs" // Azure is the value for the Azure storage backend. Azure = "azure" // Swift is the value for the Openstack Swift storage backend. Swift = "swift" // Filesystem is the value for the filesystem storage backend. Filesystem = "filesystem" )
Variables ¶
var (
ErrUnsupportedStorageBackend = errors.New("unsupported storage backend")
)
Functions ¶
Types ¶
type ClientMock ¶
ClientMock mocks objstore.Bucket
func (*ClientMock) Attributes ¶
func (m *ClientMock) Attributes(ctx context.Context, name string) (objstore.ObjectAttributes, error)
ObjectSize mocks objstore.Bucket.Attributes()
func (*ClientMock) Delete ¶
func (m *ClientMock) Delete(ctx context.Context, name string) error
Delete mocks objstore.Bucket.Delete()
func (*ClientMock) Get ¶
func (m *ClientMock) Get(ctx context.Context, name string) (io.ReadCloser, error)
Get mocks objstore.Bucket.Get()
func (*ClientMock) GetRange ¶
func (m *ClientMock) GetRange(ctx context.Context, name string, off, length int64) (io.ReadCloser, error)
GetRange mocks objstore.Bucket.GetRange()
func (*ClientMock) IsObjNotFoundErr ¶
func (m *ClientMock) IsObjNotFoundErr(err error) bool
IsObjNotFoundErr mocks objstore.Bucket.IsObjNotFoundErr()
func (*ClientMock) MockDelete ¶
func (m *ClientMock) MockDelete(name string, err error)
func (*ClientMock) MockExists ¶
func (m *ClientMock) MockExists(name string, exists bool, err error)
func (*ClientMock) MockGet ¶
func (m *ClientMock) MockGet(name, content string, err error)
MockGet is a convenient method to mock Get() and Exists()
func (*ClientMock) MockIter ¶
func (m *ClientMock) MockIter(prefix string, objects []string, err error)
MockIter is a convenient method to mock Iter()
func (*ClientMock) MockIterWithCallback ¶
func (m *ClientMock) MockIterWithCallback(prefix string, objects []string, err error, cb func())
MockIterWithCallback is a convenient method to mock Iter() and get a callback called when the Iter API is called.
type Config ¶
type Config struct { Backend string `yaml:"backend"` // Backends S3 s3.Config `yaml:"s3"` GCS gcs.Config `yaml:"gcs"` Azure azure.Config `yaml:"azure"` Swift swift.Config `yaml:"swift"` Filesystem filesystem.Config `yaml:"filesystem"` // Not used internally, meant to allow callers to wrap Buckets // created using this config Middlewares []func(objstore.Bucket) (objstore.Bucket, error) `yaml:"-"` }
Config holds configuration for accessing long-term storage.
func (*Config) RegisterFlags ¶
RegisterFlags registers the backend storage config.
func (*Config) RegisterFlagsWithPrefix ¶
type UserBucketClient ¶
type UserBucketClient struct { UserBucketReaderClient // contains filtered or unexported fields }
UserBucketClient is a wrapper around a objstore.Bucket that prepends writes with a userID
func NewUserBucketClient ¶
func NewUserBucketClient(userID string, bucket objstore.Bucket) *UserBucketClient
func (*UserBucketClient) Close ¶
func (b *UserBucketClient) Close() error
Close implements io.Closer
func (*UserBucketClient) Delete ¶
func (b *UserBucketClient) Delete(ctx context.Context, name string) error
Delete removes the object with the given name.
func (*UserBucketClient) Name ¶
func (b *UserBucketClient) Name() string
Name returns the bucket name for the provider.
func (*UserBucketClient) WithExpectedErrs ¶
func (b *UserBucketClient) WithExpectedErrs(fn objstore.IsOpFailureExpectedFunc) objstore.Bucket
WithExpectedErrs allows to specify a filter that marks certain errors as expected, so it will not increment thanos_objstore_bucket_operation_failures_total metric.
type UserBucketReaderClient ¶
type UserBucketReaderClient struct {
// contains filtered or unexported fields
}
UserBucketReaderClient is a wrapper around a objstore.BucketReader that reads from user-specific subfolder.
func (*UserBucketReaderClient) Attributes ¶
func (b *UserBucketReaderClient) Attributes(ctx context.Context, name string) (objstore.ObjectAttributes, error)
Attributes returns attributes of the specified object.
func (*UserBucketReaderClient) Get ¶
func (b *UserBucketReaderClient) Get(ctx context.Context, name string) (io.ReadCloser, error)
Get returns a reader for the given object name.
func (*UserBucketReaderClient) GetRange ¶
func (b *UserBucketReaderClient) 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 (*UserBucketReaderClient) IsObjNotFoundErr ¶
func (b *UserBucketReaderClient) IsObjNotFoundErr(err error) bool
IsObjNotFoundErr returns true if error means that object is not found. Relevant to Get operations.
func (*UserBucketReaderClient) Iter ¶
Iter calls f for each entry in the given directory (not recursive.). The argument to f is the full object name including the prefix of the inspected directory.
func (*UserBucketReaderClient) ReaderWithExpectedErrs ¶
func (b *UserBucketReaderClient) ReaderWithExpectedErrs(fn objstore.IsOpFailureExpectedFunc) objstore.BucketReader
ReaderWithExpectedErrs allows to specify a filter that marks certain errors as expected, so it will not increment thanos_objstore_bucket_operation_failures_total metric.