package putsvc import ( "context" "fmt" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/services/object" putsvc "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/services/object/put" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/services/object/util" objectAPI "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/api/object" ) // Service implements Put operation of Object service v2. type Service struct { svc *putsvc.Service keyStorage *util.KeyStorage } // NewService constructs Service instance from provided options. func NewService(svc *putsvc.Service, ks *util.KeyStorage) *Service { return &Service{ svc: svc, keyStorage: ks, } } // Put calls internal service and returns v2 object streamer. func (s *Service) Put() (object.PutObjectStream, error) { stream, err := s.svc.Put() if err != nil { return nil, fmt.Errorf("(%T) could not open object put stream: %w", s, err) } return &streamer{ stream: stream, keyStorage: s.keyStorage, }, nil } func (s *Service) PutSingle(ctx context.Context, req *objectAPI.PutSingleRequest) (*objectAPI.PutSingleResponse, error) { return s.svc.PutSingle(ctx, req) }