seaweedfs/weed/filer/filerstore.go

48 lines
1.9 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")
)
2021-01-16 15:56:24 +08:00
type ListEachEntryFunc func(entry *Entry) bool
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)
2021-01-16 15:56:24 +08:00
ListDirectoryEntries(ctx context.Context, dirPath util.FullPath, startFileName string, includeStartFile bool, limit int64, eachEntryFunc ListEachEntryFunc) (lastFileName string, err error)
ListDirectoryPrefixedEntries(ctx context.Context, dirPath util.FullPath, startFileName string, includeStartFile bool, limit int64, prefix string, eachEntryFunc ListEachEntryFunc) (lastFileName string, err 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()
}
type BucketAware interface {
OnBucketCreation(bucket string)
OnBucketDeletion(bucket string)
CanDropWholeBucket() bool
}