streams

package
v1.4.1 Latest Latest
Warning

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

Go to latest
Published: Dec 4, 2020 License: MIT Imports: 20 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type EOFReader

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

EOFReader holds reader and status of EOF.

func NewEOFReader

func NewEOFReader(r io.Reader) *EOFReader

NewEOFReader keeps track of the state, has the internal reader reached EOF.

func (*EOFReader) Read

func (r *EOFReader) Read(p []byte) (n int, err error)

type Meta

type Meta struct {
	Modified   time.Time
	Expiration time.Time
	Size       int64
	Data       []byte
}

Meta info about a stream.

type Metadata

type Metadata interface {
	Metadata() ([]byte, error)
}

Metadata interface returns the latest metadata for an object.

type Path

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

Path is a representation of an object path within a bucket.

func ParsePath

func ParsePath(raw storj.Path) Path

ParsePath returns a new Path with the given raw bytes.

func (Path) Bucket

func (p Path) Bucket() string

Bucket returns the bucket part of the path.

func (Path) Raw

func (p Path) Raw() []byte

Raw returns the raw data in the path.

func (Path) String

func (p Path) String() string

String returns the string form of the raw data in the path.

func (Path) UnencryptedPath

func (p Path) UnencryptedPath() paths.Unencrypted

UnencryptedPath returns the unencrypted path part of the path.

type PeekThresholdReader added in v1.0.6

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

PeekThresholdReader allows a check to see if the size of a given reader exceeds the maximum inline segment size or not.

func NewPeekThresholdReader added in v1.0.6

func NewPeekThresholdReader(r io.Reader) (pt *PeekThresholdReader)

NewPeekThresholdReader creates a new instance of PeekThresholdReader.

func (*PeekThresholdReader) IsLargerThan added in v1.0.6

func (pt *PeekThresholdReader) IsLargerThan(thresholdSize int) (bool, error)

IsLargerThan returns a bool to determine whether a reader's size is larger than the given threshold or not.

func (*PeekThresholdReader) Read added in v1.0.6

func (pt *PeekThresholdReader) Read(p []byte) (n int, err error)

Read initially reads bytes from the internal buffer, then continues reading from the wrapped data reader. The number of bytes read `n` is returned.

type SizedReader added in v1.2.0

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

SizedReader allows to check the total number of bytes read so far.

func SizeReader

func SizeReader(r io.Reader) *SizedReader

SizeReader create a new instance of SizedReader.

func (*SizedReader) Read added in v1.2.0

func (r *SizedReader) Read(p []byte) (n int, err error)

Read implements io.Reader.Read.

func (*SizedReader) Size added in v1.2.0

func (r *SizedReader) Size() int64

Size returns the total number of bytes read so far.

type Store

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

Store is a store for streams. It implements typedStore as part of an ongoing migration to use typed paths. See the shim for the store that the rest of the world interacts with.

func NewStreamStore

func NewStreamStore(metainfo *metainfo.Client, ec ecclient.Client, segmentSize int64, encStore *encryption.Store, encryptionParameters storj.EncryptionParameters, inlineThreshold int) (*Store, error)

NewStreamStore constructs a stream store.

func (*Store) Close added in v1.4.0

func (s *Store) Close() error

Close closes the underlying resources passed to the metainfo DB.

func (*Store) Delete

func (s *Store) Delete(ctx context.Context, path Path) (err error)

Delete all the segments, with the last one last.

func (*Store) Get

func (s *Store) Get(ctx context.Context, path Path, object storj.Object) (rr ranger.Ranger, err error)

Get returns a ranger that knows what the overall size is (from l/<path>) and then returns the appropriate data from segments s0/<path>, s1/<path>, ..., l/<path>.

func (*Store) Put

func (s *Store) Put(ctx context.Context, path Path, data io.Reader, metadata Metadata, expiration time.Time) (_ Meta, err error)

Put breaks up data as it comes in into s.segmentSize length pieces, then store the first piece at s0/<path>, second piece at s1/<path>, and the *last* piece at l/<path>. Store the given metadata, along with the number of segments, in a new protobuf, in the metadata of l/<path>.

If there is an error, it cleans up any uploaded segment before returning.

func (*Store) Ranger added in v1.4.0

func (s *Store) Ranger(
	ctx context.Context, info storj.SegmentDownloadInfo, limits []*pb.AddressedOrderLimit, objectRS storj.RedundancyScheme,
) (rr ranger.Ranger, err error)

Ranger creates a ranger for downloading erasure codes from piece store nodes.

Jump to

Keyboard shortcuts

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