mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
Created Customize Filer Store (markdown)
parent
76ba8ca9f8
commit
0a80139120
51
Customize-Filer-Store.md
Normal file
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
```
|
Loading…
Reference in a new issue