Help us shape the future of Go! Take the 2026 Go Developer Survey

writer

package
v0.46.13 Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2025 License: GPL-3.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NeedAdditionalBroadcast

func NeedAdditionalBroadcast(obj *objectSDK.Object, localOnly bool) bool

func New

Types

type ClientConstructor

type ClientConstructor interface {
	Get(client.NodeInfo) (client.MultiAddressClient, error)
}

type Config

type Config struct {
	KeyStorage *objectSvc.KeyStorage

	MaxSizeSrc MaxSizeSource

	LocalStore ObjectStorage

	ContainerSource container.Source

	NetmapSource netmap.Source

	NetmapKeys netmap.AnnouncedKeys

	FormatValidator *object.FormatValidator

	NetworkState netmap.State

	ClientConstructor ClientConstructor

	Logger *logger.Logger

	VerifySessionTokenIssuer bool

	ConfigSource netmap.ConfigSource
}

Config represents a set of static parameters that are established during the initialization phase of all services.

func (*Config) NewNodeIterator

func (c *Config) NewNodeIterator(opts []placement.Option) *NodeIterator

type ECWriter

type ECWriter struct {
	Config        *Config
	PlacementOpts []placement.Option
	Container     containerSDK.Container
	Key           *ecdsa.PrivateKey
	CommonPrm     *objectSvc.CommonPrm
	Relay         func(context.Context, client.NodeInfo, client.MultiAddressClient) error

	ObjectMeta      object.ContentMeta
	ObjectMetaValid bool
	// contains filtered or unexported fields
}

func (*ECWriter) WriteObject

func (e *ECWriter) WriteObject(ctx context.Context, obj *objectSDK.Object) error

type FormatValidatorConfig

type FormatValidatorConfig interface {
	VerifySessionTokenIssuer() bool
}

type InnerRing

type InnerRing interface {
	InnerRingKeys(ctx context.Context) ([][]byte, error)
}

type LocalTarget

type LocalTarget struct {
	Storage   ObjectStorage
	Container containerSDK.Container
}

func (LocalTarget) WriteObject

func (t LocalTarget) WriteObject(ctx context.Context, obj *objectSDK.Object, meta objectCore.ContentMeta) error

type MaxSizeSource

type MaxSizeSource interface {
	// MaxObjectSize returns maximum payload size
	// of physically stored object in system.
	//
	// Must return 0 if value can not be obtained.
	MaxObjectSize(context.Context) uint64
}

type NodeDescriptor

type NodeDescriptor struct {
	Local bool

	Info placement.Node
}

type NodeIterator

type NodeIterator struct {
	Traversal
	// contains filtered or unexported fields
}

func (*NodeIterator) ForEachNode

func (n *NodeIterator) ForEachNode(ctx context.Context, f func(context.Context, NodeDescriptor) error) error

type ObjectStorage

type ObjectStorage interface {
	// Put must save passed object
	// and return any appeared error.
	Put(context.Context, *objectSDK.Object, bool) error
	// Delete must delete passed objects
	// and return any appeared error.
	Delete(ctx context.Context, tombstone oid.Address, toDelete []oid.ID) error
	// Lock must lock passed objects
	// and return any appeared error.
	Lock(ctx context.Context, locker oid.Address, toLock []oid.ID) error
	// IsLocked must clarify object's lock status.
	IsLocked(context.Context, oid.Address) (bool, error)
}

ObjectStorage is an object storage interface.

type Option

type Option func(*Config)

func WithLogger

func WithLogger(l *logger.Logger) Option

func WithVerifySessionTokenIssuer

func WithVerifySessionTokenIssuer(v bool) Option

type Params

type Params struct {
	Config *Config

	Common *objectSvc.CommonPrm

	Header *objectSDK.Object

	Container containerSDK.Container

	TraverseOpts []placement.Option

	Relay func(context.Context, client.NodeInfo, client.MultiAddressClient) error

	SignRequestPrivateKey *ecdsa.PrivateKey
}

type RemotePutPrm

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

RemotePutPrm groups remote put operation parameters.

func (*RemotePutPrm) WithNodeInfo

func (p *RemotePutPrm) WithNodeInfo(v netmap.NodeInfo) *RemotePutPrm

WithNodeInfo sets information about the remote node.

func (*RemotePutPrm) WithObject

func (p *RemotePutPrm) WithObject(v *objectSDK.Object) *RemotePutPrm

WithObject sets transferred object.

type RemoteSender

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

RemoteSender represents utility for sending an object to a remote host.

func NewRemoteSender

func NewRemoteSender(keyStorage *objectSvc.KeyStorage, cons ClientConstructor) *RemoteSender

NewRemoteSender creates, initializes and returns new RemoteSender instance.

func (*RemoteSender) PutObject

func (s *RemoteSender) PutObject(ctx context.Context, p *RemotePutPrm) error

PutObject sends object to remote node.

type Traversal

type Traversal struct {
	Opts []placement.Option

	// need of additional broadcast after the object is saved
	ExtraBroadcastEnabled bool

	// container nodes which was processed during the primary object placement
	Exclude map[string]*bool

	ResetSuccessAfterOnBroadcast bool
}

Traversal parameters and state of container.

Jump to

Keyboard shortcuts

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