common

package
v0.53.0 Latest Latest
Warning

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

Go to latest
Published: May 21, 2026 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const IDSize = 16

IDSize is the binary shard ID size in bytes.

Variables

View Source
var ErrNoSpace = logicerr.New("no free space")

ErrNoSpace MUST be returned when there is no space to put an object on the device.

View Source
var ErrReadOnly = logicerr.New("opened as read-only")

ErrReadOnly MUST be returned for modifying operations when the storage was opened in readonly mode.

Functions

func Copy added in v0.38.0

func Copy(dst, src Storage) error

Copy copies all objects from source Storage into the destination one. If any object cannot be stored, Copy immediately fails.

func CopyBatched added in v0.46.0

func CopyBatched(dst, src Storage, batchSize int) error

CopyBatched copies all objects from source Storage into the destination one using batched API. If any batch cannot be stored, Copy immediately fails. batchSize less than or equal to 1 makes it the same as Copy.

Types

type ID added in v0.53.0

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

ID represents a shard identifier. Implements the built-in comparable interface.

func DecodeIDString added in v0.53.0

func DecodeIDString(s string) (ID, error)

DecodeIDString decodes base58 string into ID.

func NewID added in v0.53.0

func NewID() (ID, error)

NewID generates a new shard identifier.

func NewIDFromBytes added in v0.53.0

func NewIDFromBytes(v []byte) (ID, error)

NewIDFromBytes constructs ID from fixed-size raw bytes.

func (ID) Bytes added in v0.53.0

func (id ID) Bytes() []byte

Bytes returns a copy of the raw ID bytes.

func (ID) Hash added in v0.53.0

func (id ID) Hash() uint64

Hash returns the cached HRW hash.

func (ID) IsZero added in v0.53.0

func (id ID) IsZero() bool

IsZero reports whether ID is empty.

func (ID) String added in v0.53.0

func (id ID) String() string

String encodes ID into base58 form.

type Storage

type Storage interface {
	Open(readOnly bool) error
	Init(ID) error
	Close() error

	Type() string
	Path() string
	ShardID() ID
	SetCompressor(cc *compression.Config)

	// GetBytes reads object by address into memory buffer in a canonical NeoFS
	// binary format. Returns [apistatus.ObjectNotFound] if object is missing.
	GetBytes(oid.Address) ([]byte, error)
	Get(oid.Address) (*object.Object, error)
	GetRangeStream(addr oid.Address, off uint64, ln uint64) (uint64, io.ReadCloser, error)
	GetStream(oid.Address) (*object.Object, io.ReadCloser, error)
	Head(oid.Address) (*object.Object, error)
	ReadHeader(oid.Address, []byte) (int, error)
	ReadObject(oid.Address, []byte) (int, io.ReadCloser, error)
	ReadPayloadRange(oid.Address, uint64, uint64, []byte) (io.ReadCloser, error)
	Exists(oid.Address) (bool, error)
	Put(oid.Address, []byte) error
	PutBatch(map[oid.Address][]byte) error
	Delete(oid.Address) error
	Iterate(func(oid.Address, []byte) error, func(oid.Address, error) error) error
	IterateAddresses(func(oid.Address) error, bool) error
}

Storage represents key-value object storage. It is used as a building block for a blobstor of a shard.

Jump to

Keyboard shortcuts

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