azure

package
v0.0.0-...-c228ca5 Latest Latest
Warning

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

Go to latest
Published: Jul 10, 2023 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const DirDelim = "/"

DirDelim is the delimiter used to model a directory structure in an object store bucket.

Variables

View Source
var DefaultConfig = Config{
	Endpoint: "blob.core.windows.net",
	HTTPConfig: exthttp.HTTPConfig{
		IdleConnTimeout:       model.Duration(90 * time.Second),
		ResponseHeaderTimeout: model.Duration(2 * time.Minute),
		TLSHandshakeTimeout:   model.Duration(10 * time.Second),
		ExpectContinueTimeout: model.Duration(1 * time.Second),
		MaxIdleConns:          100,
		MaxIdleConnsPerHost:   100,
		MaxConnsPerHost:       0,
		DisableCompression:    false,
	},
}

DefaultConfig for Azure objstore client.

Functions

func NewTestBucket

func NewTestBucket(t testing.TB, component string) (objstore.Bucket, func(), error)

NewTestBucket creates test bkt client that before returning creates temporary bucket. In a close function it empties and deletes the bucket.

Types

type Bucket

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

Bucket implements the store.Bucket interface against Azure APIs.

func NewBucket

func NewBucket(logger log.Logger, azureConfig []byte, component string) (*Bucket, error)

NewBucket returns a new Bucket using the provided Azure config.

func NewBucketWithConfig

func NewBucketWithConfig(logger log.Logger, conf Config, component string) (*Bucket, error)

NewBucketWithConfig returns a new Bucket using the provided Azure config struct.

func (*Bucket) Attributes

func (b *Bucket) Attributes(ctx context.Context, name string) (objstore.ObjectAttributes, error)

Attributes returns information about the specified object.

func (*Bucket) Close

func (b *Bucket) Close() error

Close bucket.

func (*Bucket) Delete

func (b *Bucket) Delete(ctx context.Context, name string) error

Delete removes the object with the given name.

func (*Bucket) Exists

func (b *Bucket) Exists(ctx context.Context, name string) (bool, error)

Exists checks if the given object exists.

func (*Bucket) Get

func (b *Bucket) Get(ctx context.Context, name string) (io.ReadCloser, error)

Get returns a reader for the given object name.

func (*Bucket) GetRange

func (b *Bucket) GetRange(ctx context.Context, name string, offset, length int64) (io.ReadCloser, error)

GetRange returns a new range reader for the given object name and range.

func (*Bucket) IsCustomerManagedKeyError

func (b *Bucket) IsCustomerManagedKeyError(_ error) bool

IsCustomerManagedKeyError returns true if the permissions for key used to encrypt the object was revoked.

func (*Bucket) IsObjNotFoundErr

func (b *Bucket) IsObjNotFoundErr(err error) bool

IsObjNotFoundErr returns true if error means that object is not found. Relevant to Get operations.

func (*Bucket) Iter

func (b *Bucket) Iter(ctx context.Context, dir string, f func(string) error, options ...objstore.IterOption) error

Iter calls f for each entry in the given directory. The argument to f is the full object name including the prefix of the inspected directory.

func (*Bucket) Name

func (b *Bucket) Name() string

Name returns Azure container name.

func (*Bucket) Upload

func (b *Bucket) Upload(ctx context.Context, name string, r io.Reader) error

Upload the contents of the reader as an object into the bucket.

type Config

type Config struct {
	StorageAccountName string             `yaml:"storage_account"`
	StorageAccountKey  string             `yaml:"storage_account_key"`
	ContainerName      string             `yaml:"container"`
	Endpoint           string             `yaml:"endpoint"`
	UserAssignedID     string             `yaml:"user_assigned_id"`
	MaxRetries         int                `yaml:"max_retries"`
	ReaderConfig       ReaderConfig       `yaml:"reader_config"`
	PipelineConfig     PipelineConfig     `yaml:"pipeline_config"`
	HTTPConfig         exthttp.HTTPConfig `yaml:"http_config"`

	// Deprecated: Is automatically set by the Azure SDK.
	MSIResource string `yaml:"msi_resource"`
}

Config Azure storage configuration.

type HTTPConfig

type HTTPConfig = exthttp.HTTPConfig

HTTPConfig exists here only because Cortex depends on it, and we depend on Cortex. Deprecated. TODO(bwplotka): Remove it, once we remove Cortex cycle dep, or Cortex stops using this.

type PipelineConfig

type PipelineConfig struct {
	MaxTries      int32          `yaml:"max_tries"`
	TryTimeout    model.Duration `yaml:"try_timeout"`
	RetryDelay    model.Duration `yaml:"retry_delay"`
	MaxRetryDelay model.Duration `yaml:"max_retry_delay"`
}

type ReaderConfig

type ReaderConfig struct {
	MaxRetryRequests int `yaml:"max_retry_requests"`
}

Jump to

Keyboard shortcuts

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