Created Customize Filer Store (markdown)

Chris Lu 2018-06-17 13:16:14 -07:00
parent 76ba8ca9f8
commit 0a80139120

51
Customize-Filer-Store.md Normal file

@ -0,0 +1,51 @@
It is fairly easy if you need to store filer metadata with other data store.
Let's use "yourstore" as the chosen name.
Here are the steps:
1. add a package under github.com/chrislusf/seaweedfs/weed/filer2/yourstore
2. implement the filer2.FilerStore interface
```
package filer2
import (
"errors"
)
type FilerStore interface {
GetName() string
// Initialize initializes the file store
Initialize(configuration Configuration) error
InsertEntry(*Entry) error
UpdateEntry(*Entry) (err error)
FindEntry(FullPath) (entry *Entry, err error)
DeleteEntry(FullPath) (err error)
ListDirectoryEntries(dirPath FullPath, startFileName string, includeStartFile bool, limit int) ([]*Entry, error)
}
```
3. Remember to add yourstore to the list of supported stores
```
func init() {
filer2.Stores = append(filer2.Stores, &YourStore{})
}
```
4. Load yourstore. Just import it in github.com/chrislusf/seaweedfs/weed/server/filer_server.go
```
import (
"net/http"
"strconv"
"github.com/chrislusf/seaweedfs/weed/filer2"
_ "github.com/chrislusf/seaweedfs/weed/filer2/cassandra"
_ "github.com/chrislusf/seaweedfs/weed/filer2/leveldb"
_ "github.com/chrislusf/seaweedfs/weed/filer2/memdb"
_ "github.com/chrislusf/seaweedfs/weed/filer2/mysql"
_ "github.com/chrislusf/seaweedfs/weed/filer2/postgres"
_ "github.com/chrislusf/seaweedfs/weed/filer2/redis"
_ "github.com/chrislusf/seaweedfs/weed/filer2/yourstore"
// ^^ add here
"github.com/chrislusf/seaweedfs/weed/security"
"github.com/chrislusf/seaweedfs/weed/glog"
)
```