swift

package
v0.0.0-...-063ea38 Latest Latest
Warning

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

Go to latest
Published: Dec 17, 2024 License: Apache-2.0 Imports: 18 Imported by: 10

Documentation

Overview

Package swift implements common object storage abstractions against OpenStack swift APIs.

Index

Constants

View Source
const (
	// DirDelim is the delimiter used to model a directory structure in an object store bucket.
	DirDelim = '/'
	// SegmentsDir represent name of the directory in bucket, where to store file parts of SLO and DLO.
	SegmentsDir = "segments/"
)

Variables

View Source
var DefaultConfig = Config{
	AuthVersion:    0,
	ChunkSize:      1024 * 1024 * 1024,
	Retries:        3,
	ConnectTimeout: model.Duration(10 * time.Second),
	Timeout:        model.Duration(5 * time.Minute),
	HTTPConfig:     exthttp.DefaultHTTPConfig,
}

Functions

func NewTestContainer

func NewTestContainer(t testing.TB) (objstore.Bucket, func(), error)

NewTestContainer creates test objStore client that before returning creates temporary container. In a close function it empties and deletes the container.

Types

type Config

type Config struct {
	AuthVersion                 int                `yaml:"auth_version"`
	AuthUrl                     string             `yaml:"auth_url"`
	Username                    string             `yaml:"username"`
	UserDomainName              string             `yaml:"user_domain_name"`
	UserDomainID                string             `yaml:"user_domain_id"`
	UserId                      string             `yaml:"user_id"`
	Password                    string             `yaml:"password"`
	DomainId                    string             `yaml:"domain_id"`
	DomainName                  string             `yaml:"domain_name"`
	ApplicationCredentialID     string             `yaml:"application_credential_id"`
	ApplicationCredentialName   string             `yaml:"application_credential_name"`
	ApplicationCredentialSecret string             `yaml:"application_credential_secret"`
	ProjectID                   string             `yaml:"project_id"`
	ProjectName                 string             `yaml:"project_name"`
	ProjectDomainID             string             `yaml:"project_domain_id"`
	ProjectDomainName           string             `yaml:"project_domain_name"`
	RegionName                  string             `yaml:"region_name"`
	ContainerName               string             `yaml:"container_name"`
	ChunkSize                   int64              `yaml:"large_object_chunk_size"`
	SegmentContainerName        string             `yaml:"large_object_segments_container_name"`
	Retries                     int                `yaml:"retries"`
	ConnectTimeout              model.Duration     `yaml:"connect_timeout"`
	Timeout                     model.Duration     `yaml:"timeout"`
	UseDynamicLargeObjects      bool               `yaml:"use_dynamic_large_objects"`
	HTTPConfig                  exthttp.HTTPConfig `yaml:"http_config"`
}

type Container

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

func NewContainer

func NewContainer(logger log.Logger, conf []byte, wrapRoundtripper func(http.RoundTripper) http.RoundTripper) (*Container, error)

func NewContainerFromConfig

func NewContainerFromConfig(logger log.Logger, sc *Config, createContainer bool, wrapRoundtripper func(http.RoundTripper) http.RoundTripper) (*Container, error)

func (*Container) Attributes

func (c *Container) Attributes(_ context.Context, name string) (objstore.ObjectAttributes, error)

Attributes returns information about the specified object.

func (*Container) Close

func (*Container) Close() error

func (*Container) Delete

func (c *Container) Delete(_ context.Context, name string) error

Delete removes the object with the given name.

func (*Container) Exists

func (c *Container) Exists(_ context.Context, name string) (bool, error)

Exists checks if the given object exists.

func (*Container) Get

func (c *Container) Get(_ context.Context, name string) (io.ReadCloser, error)

Get returns a reader for the given object name.

func (*Container) GetRange

func (c *Container) GetRange(_ context.Context, name string, off, length int64) (io.ReadCloser, error)

func (*Container) IsAccessDeniedErr

func (c *Container) IsAccessDeniedErr(err error) bool

IsAccessDeniedErr returns true if access to object is denied.

func (*Container) IsObjNotFoundErr

func (c *Container) IsObjNotFoundErr(err error) bool

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

func (*Container) Iter

func (c *Container) 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 (*Container) IterWithAttributes

func (c *Container) IterWithAttributes(ctx context.Context, dir string, f func(attrs objstore.IterObjectAttributes) error, options ...objstore.IterOption) error

func (*Container) Name

func (c *Container) Name() string

Name returns the container name for swift.

func (*Container) Provider

func (c *Container) Provider() objstore.ObjProvider

func (*Container) SupportedIterOptions

func (c *Container) SupportedIterOptions() []objstore.IterOptionType

func (*Container) Upload

func (c *Container) Upload(_ context.Context, name string, r io.Reader) (err error)

Upload writes the contents of the reader as an object into the container.

Jump to

Keyboard shortcuts

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