9f51c85054
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
53 lines
919 B
Go
53 lines
919 B
Go
package localstore
|
|
|
|
import (
|
|
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/bucket"
|
|
"github.com/nspcc-dev/neofs-node/pkg/util/logger"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
// Storage represents NeoFS local object storage.
|
|
type Storage struct {
|
|
log *logger.Logger
|
|
|
|
metaBucket bucket.Bucket
|
|
|
|
blobBucket bucket.Bucket
|
|
}
|
|
|
|
// Option is an option of Storage constructor.
|
|
type Option func(*cfg)
|
|
|
|
type cfg struct {
|
|
logger *logger.Logger
|
|
}
|
|
|
|
func defaultCfg() *cfg {
|
|
return &cfg{
|
|
logger: zap.L(),
|
|
}
|
|
}
|
|
|
|
// New is a local object storage constructor.
|
|
func New(blob, meta bucket.Bucket, opts ...Option) *Storage {
|
|
cfg := defaultCfg()
|
|
|
|
for i := range opts {
|
|
opts[i](cfg)
|
|
}
|
|
|
|
return &Storage{
|
|
metaBucket: meta,
|
|
blobBucket: blob,
|
|
log: cfg.logger,
|
|
}
|
|
}
|
|
|
|
// WithLogger returns Storage option of used logger.
|
|
func WithLogger(l *logger.Logger) Option {
|
|
return func(c *cfg) {
|
|
if l != nil {
|
|
c.logger = l
|
|
}
|
|
}
|
|
}
|