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