kvmetainfo

package
v0.29.8 Latest Latest
Warning

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

Go to latest
Published: Jan 13, 2020 License: AGPL-3.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultES = storj.EncryptionParameters{
	CipherSuite: storj.EncAESGCM,
	BlockSize:   DefaultRS.StripeSize(),
}

DefaultES default values for EncryptionParameters BlockSize should default to the size of a stripe

View Source
var DefaultRS = storj.RedundancyScheme{
	Algorithm:      storj.ReedSolomon,
	RequiredShares: 20,
	RepairShares:   30,
	OptimalShares:  40,
	TotalShares:    50,
	ShareSize:      1 * memory.KiB.Int32(),
}

DefaultRS default values for RedundancyScheme

View Source
var (
	// Error is the errs class of SetupProject
	Error = errs.Class("SetupProject error")
)

Functions

This section is empty.

Types

type CreateObject added in v0.29.0

type CreateObject struct {
	Metadata    map[string]string
	ContentType string
	Expires     time.Time

	storj.RedundancyScheme
	storj.EncryptionParameters
}

CreateObject has optional parameters that can be set

func (CreateObject) Object added in v0.29.0

func (create CreateObject) Object(bucket storj.Bucket, path storj.Path) storj.Object

Object converts the CreateObject to an object with unitialized values

type DB

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

DB implements metainfo database

func New

func New(project *Project, metainfo *metainfo.Client, streams streams.Store, segments segments.Store, encStore *encryption.Store) *DB

New creates a new metainfo database

func (*DB) CreateBucket

func (db *DB) CreateBucket(ctx context.Context, bucketName string, info *storj.Bucket) (bucketInfo storj.Bucket, err error)

CreateBucket creates a new bucket with the specified information

func (*DB) CreateObject

func (db *DB) CreateObject(ctx context.Context, bucket storj.Bucket, path storj.Path, createInfo *CreateObject) (object MutableObject, err error)

CreateObject creates an uploading object and returns an interface for uploading Object information

func (*DB) DeleteBucket

func (db *DB) DeleteBucket(ctx context.Context, bucketName string) (err error)

DeleteBucket deletes bucket

func (*DB) DeleteObject

func (db *DB) DeleteObject(ctx context.Context, bucket storj.Bucket, path storj.Path) (err error)

DeleteObject deletes an object from database

func (*DB) GetBucket

func (db *DB) GetBucket(ctx context.Context, bucketName string) (bucketInfo storj.Bucket, err error)

GetBucket gets bucket information

func (*DB) GetObject

func (db *DB) GetObject(ctx context.Context, bucket storj.Bucket, path storj.Path) (info storj.Object, err error)

GetObject returns information about an object

func (*DB) GetObjectStream

func (db *DB) GetObjectStream(ctx context.Context, bucket storj.Bucket, object storj.Object) (stream ReadOnlyStream, err error)

GetObjectStream returns interface for reading the object stream

func (*DB) Limits

func (db *DB) Limits() (MetainfoLimits, error)

Limits returns limits for this metainfo database

func (*DB) ListBuckets

func (db *DB) ListBuckets(ctx context.Context, options storj.BucketListOptions) (list storj.BucketList, err error)

ListBuckets lists buckets

func (*DB) ListObjects

func (db *DB) ListObjects(ctx context.Context, bucket storj.Bucket, options storj.ListOptions) (list storj.ObjectList, err error)

ListObjects lists objects in bucket based on the ListOptions

func (*DB) ListPendingObjects

func (db *DB) ListPendingObjects(ctx context.Context, bucket storj.Bucket, options storj.ListOptions) (list storj.ObjectList, err error)

ListPendingObjects lists pending objects in bucket based on the ListOptions

func (*DB) ModifyObject

func (db *DB) ModifyObject(ctx context.Context, bucket storj.Bucket, path storj.Path) (object MutableObject, err error)

ModifyObject modifies a committed object

func (*DB) ModifyPendingObject

func (db *DB) ModifyPendingObject(ctx context.Context, bucket storj.Bucket, path storj.Path) (object MutableObject, err error)

ModifyPendingObject creates an interface for updating a partially uploaded object

type MetainfoLimits added in v0.29.0

type MetainfoLimits struct {
	// ListLimit specifies the maximum amount of items that can be listed at a time.
	ListLimit int64

	// MinimumRemoteSegmentSize specifies the minimum remote segment that is allowed to be stored.
	MinimumRemoteSegmentSize int64
	// MaximumInlineSegmentSize specifies the maximum inline segment that is allowed to be stored.
	MaximumInlineSegmentSize int64
}

MetainfoLimits lists limits specified for the Metainfo database

type MutableObject added in v0.29.0

type MutableObject interface {
	// Info gets the current information about the object
	Info() storj.Object

	// CreateStream creates a new stream for the object
	CreateStream(ctx context.Context) (MutableStream, error)
	// ContinueStream starts to continue a partially uploaded stream.
	ContinueStream(ctx context.Context) (MutableStream, error)
	// DeleteStream deletes any information about this objects stream
	DeleteStream(ctx context.Context) error

	// Commit commits the changes to the database
	Commit(ctx context.Context) error
}

MutableObject is an interface for manipulating creating/deleting object stream

type MutableStream added in v0.29.0

type MutableStream interface {
	Info() storj.Object
	// AddSegments adds segments to the stream.
	AddSegments(ctx context.Context, segments ...storj.Segment) error
	// UpdateSegments updates information about segments.
	UpdateSegments(ctx context.Context, segments ...storj.Segment) error
}

MutableStream is an interface for manipulating stream information

type Project

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

Project implements project management operations

func NewProject

func NewProject(streams streams.Store, encryptedBlockSize int32, redundancy eestream.RedundancyStrategy, segmentsSize int64, metainfo metainfo.Client) *Project

NewProject constructs a *Project

func SetupProject

func SetupProject(m *metainfo.Client) (*Project, error)

SetupProject creates a project with temporary values until we can figure out how to bypass encryption related setup

func (*Project) CreateBucket

func (db *Project) CreateBucket(ctx context.Context, bucketName string, info *storj.Bucket) (_ storj.Bucket, err error)

CreateBucket creates a new bucket

func (*Project) DeleteBucket

func (db *Project) DeleteBucket(ctx context.Context, bucketName string) (err error)

DeleteBucket deletes bucket

func (*Project) GetBucket

func (db *Project) GetBucket(ctx context.Context, bucketName string) (_ storj.Bucket, err error)

GetBucket gets bucket information

func (*Project) ListBuckets

func (db *Project) ListBuckets(ctx context.Context, listOpts storj.BucketListOptions) (_ storj.BucketList, err error)

ListBuckets lists buckets

type ReadOnlyStream added in v0.29.0

type ReadOnlyStream interface {
	Info() storj.Object

	// SegmentsAt returns the segment that contains the byteOffset and following segments.
	// Limit specifies how much to return at most.
	SegmentsAt(ctx context.Context, byteOffset int64, limit int64) (infos []storj.Segment, more bool, err error)
	// Segments returns the segment at index.
	// Limit specifies how much to return at most.
	Segments(ctx context.Context, index int64, limit int64) (infos []storj.Segment, more bool, err error)
}

ReadOnlyStream is an interface for reading segment information

Jump to

Keyboard shortcuts

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