seaweedfs/weed/filer/filerstore.go

40 lines
1.6 KiB
Go
Raw Normal View History

2020-09-01 15:21:19 +08:00
package filer
2018-05-26 14:27:06 +08:00
import (
2019-03-16 06:55:34 +08:00
"context"
"errors"
"github.com/chrislusf/seaweedfs/weed/util"
)
2018-05-26 14:27:06 +08:00
var (
ErrUnsupportedListDirectoryPrefixed = errors.New("unsupported directory prefix listing")
ErrUnsupportedSuperLargeDirectoryListing = errors.New("unsupported super large directory listing")
ErrKvNotImplemented = errors.New("kv not implemented yet")
ErrKvNotFound = errors.New("kv: not found")
)
2018-05-26 14:27:06 +08:00
type FilerStore interface {
// GetName gets the name to locate the configuration in filer.toml file
GetName() string
2018-06-18 04:01:57 +08:00
// Initialize initializes the file store
Initialize(configuration util.Configuration, prefix string) error
2019-03-16 06:55:34 +08:00
InsertEntry(context.Context, *Entry) error
UpdateEntry(context.Context, *Entry) (err error)
2020-09-24 18:06:44 +08:00
// err == filer_pb.ErrNotFound if not found
2020-03-23 15:01:34 +08:00
FindEntry(context.Context, util.FullPath) (entry *Entry, err error)
DeleteEntry(context.Context, util.FullPath) (err error)
DeleteFolderChildren(context.Context, util.FullPath) (err error)
ListDirectoryEntries(ctx context.Context, dirPath util.FullPath, startFileName string, includeStartFile bool, limit int) ([]*Entry, error)
2020-08-06 01:19:16 +08:00
ListDirectoryPrefixedEntries(ctx context.Context, dirPath util.FullPath, startFileName string, includeStartFile bool, limit int, prefix string) ([]*Entry, error)
BeginTransaction(ctx context.Context) (context.Context, error)
CommitTransaction(ctx context.Context) error
RollbackTransaction(ctx context.Context) error
2020-03-15 11:30:26 +08:00
KvPut(ctx context.Context, key []byte, value []byte) (err error)
KvGet(ctx context.Context, key []byte) (value []byte, err error)
KvDelete(ctx context.Context, key []byte) (err error)
2020-03-15 11:30:26 +08:00
Shutdown()
}