aboutsummaryrefslogtreecommitdiff
path: root/weed/server/filer_server.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/server/filer_server.go')
-rw-r--r--weed/server/filer_server.go19
1 files changed, 16 insertions, 3 deletions
diff --git a/weed/server/filer_server.go b/weed/server/filer_server.go
index 120d07414..9d70e4dac 100644
--- a/weed/server/filer_server.go
+++ b/weed/server/filer_server.go
@@ -2,6 +2,7 @@ package weed_server
import (
"net/http"
+ "os"
"github.com/chrislusf/seaweedfs/weed/filer2"
_ "github.com/chrislusf/seaweedfs/weed/filer2/cassandra"
@@ -30,6 +31,7 @@ type FilerOption struct {
SecretKey string
DirListingLimit int
DataCenter string
+ DefaultLevelDbDir string
}
type FilerServer struct {
@@ -52,9 +54,16 @@ func NewFilerServer(defaultMux, readonlyMux *http.ServeMux, option *FilerOption)
go fs.filer.KeepConnectedToMaster()
- LoadConfiguration("filer", true)
- LoadConfiguration("notification", false)
v := viper.GetViper()
+ if !LoadConfiguration("filer", false) {
+ v.Set("leveldb.enabled", true)
+ v.Set("leveldb.dir", option.DefaultLevelDbDir)
+ _, err := os.Stat(option.DefaultLevelDbDir)
+ if os.IsNotExist(err) {
+ os.MkdirAll(option.DefaultLevelDbDir, 0755)
+ }
+ }
+ LoadConfiguration("notification", false)
fs.filer.LoadConfiguration(v)
@@ -73,7 +82,7 @@ func (fs *FilerServer) jwt(fileId string) security.EncodedJwt {
return security.GenJwt(fs.secret, fileId)
}
-func LoadConfiguration(configFileName string, required bool) {
+func LoadConfiguration(configFileName string, required bool) (loaded bool) {
// find a filer store
viper.SetConfigName(configFileName) // name of config file (without extension)
@@ -93,7 +102,11 @@ func LoadConfiguration(configFileName string, required bool) {
"\nOr use this command to generate the default toml file\n"+
" weed scaffold -config=%s -output=.\n\n\n",
configFileName, configFileName, configFileName)
+ } else {
+ return false
}
}
+ return true
+
}