Documentation
¶
Index ¶
- Constants
- Variables
- func CustomTransport(config Config) *http.Transport
- func NewTestBucket(t testing.TB) (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) (err 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, offset, length int64) (io.ReadCloser, error)
- 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) IterWithAttributes(ctx context.Context, dir string, ...) error
- func (b *Bucket) Name() string
- func (b *Bucket) ObjectSize(ctx context.Context, name string) (uint64, error)
- func (b *Bucket) Provider() objstore.ObjProvider
- func (b *Bucket) SupportedIterOptions() []objstore.IterOptionType
- func (b *Bucket) Upload(ctx context.Context, name string, r io.Reader, ...) (err error)
- type Config
- type HTTPConfig
- type Provider
Constants ¶
const DirDelim = "/"
DirDelim is the delimiter used to model a directory structure in an object store bucket.
Variables ¶
var DefaultConfig = Config{ HTTPConfig: 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), InsecureSkipVerify: false, MaxIdleConns: 100, MaxIdleConnsPerHost: 100, MaxConnsPerHost: 0, DisableCompression: false, ClientTimeout: 90 * time.Second, }, }
Functions ¶
func CustomTransport ¶
Types ¶
type Bucket ¶
type Bucket struct {
// contains filtered or unexported fields
}
Bucket implements the store.Bucket interface against OCI APIs.
func NewBucket ¶
func NewBucket(logger log.Logger, ociConfig []byte, wrapRoundtripper func(http.RoundTripper) http.RoundTripper) (*Bucket, error)
NewBucket returns a new Bucket using the provided oci config values.
func (*Bucket) Attributes ¶
Attributes returns information about the specified object.
func (*Bucket) Delete ¶
Delete removes the object with the given name. If object does not exists in the moment of deletion, Delete should throw error.
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) 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.
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) IterWithAttributes ¶
func (b *Bucket) IterWithAttributes(ctx context.Context, dir string, f func(attrs objstore.IterObjectAttributes) error, options ...objstore.IterOption) error
func (*Bucket) ObjectSize ¶
ObjectSize returns the size of the specified object.
func (*Bucket) Provider ¶
func (b *Bucket) Provider() objstore.ObjProvider
func (*Bucket) SupportedIterOptions ¶
func (b *Bucket) SupportedIterOptions() []objstore.IterOptionType
type Config ¶
type Config struct {
Provider string `yaml:"provider"`
Bucket string `yaml:"bucket"`
Compartment string `yaml:"compartment_ocid"`
Tenancy string `yaml:"tenancy_ocid"`
User string `yaml:"user_ocid"`
Region string `yaml:"region"`
Fingerprint string `yaml:"fingerprint"`
PrivateKey string `yaml:"privatekey"`
Passphrase string `yaml:"passphrase"`
PartSize int64 `yaml:"part_size"`
MaxRequestRetries int `yaml:"max_request_retries"`
RequestRetryInterval int `yaml:"request_retry_interval"`
HTTPConfig HTTPConfig `yaml:"http_config"`
}
Config stores the configuration for oci bucket.
type HTTPConfig ¶
type HTTPConfig struct {
IdleConnTimeout model.Duration `yaml:"idle_conn_timeout"`
ResponseHeaderTimeout model.Duration `yaml:"response_header_timeout"`
InsecureSkipVerify bool `yaml:"insecure_skip_verify"`
TLSHandshakeTimeout model.Duration `yaml:"tls_handshake_timeout"`
ExpectContinueTimeout model.Duration `yaml:"expect_continue_timeout"`
MaxIdleConns int `yaml:"max_idle_conns"`
MaxIdleConnsPerHost int `yaml:"max_idle_conns_per_host"`
MaxConnsPerHost int `yaml:"max_conns_per_host"`
DisableCompression bool `yaml:"disable_compression"`
ClientTimeout time.Duration `yaml:"client_timeout"`
Transport http.RoundTripper `yaml:"-"`
}
HTTPConfig stores the http.Transport configuration for the OCI client.