package putsvc import ( "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/core/container" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/core/netmap" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/core/object" objectwriter "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/services/object/common/writer" objutil "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/services/object/util" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/logger" "go.uber.org/zap" ) type Service struct { *objectwriter.Config } func NewService(ks *objutil.KeyStorage, cc objectwriter.ClientConstructor, ms objectwriter.MaxSizeSource, os objectwriter.ObjectStorage, cs container.Source, ns netmap.Source, nk netmap.AnnouncedKeys, nst netmap.State, ir objectwriter.InnerRing, opts ...objectwriter.Option, ) *Service { c := &objectwriter.Config{ RemotePool: util.NewPseudoWorkerPool(), LocalPool: util.NewPseudoWorkerPool(), Logger: logger.NewLoggerWrapper(zap.L()), KeyStorage: ks, ClientConstructor: cc, MaxSizeSrc: ms, LocalStore: os, ContainerSource: cs, NetmapSource: ns, NetmapKeys: nk, NetworkState: nst, } for i := range opts { opts[i](c) } c.FormatValidator = object.NewFormatValidator( object.WithLockSource(os), object.WithNetState(nst), object.WithInnerRing(ir), object.WithNetmapSource(ns), object.WithContainersSource(cs), object.WithVerifySessionTokenIssuer(c.VerifySessionTokenIssuer), object.WithLogger(c.Logger), ) return &Service{ Config: c, } } func (p *Service) Put() (*Streamer, error) { return &Streamer{ Config: p.Config, }, nil }