aboutsummaryrefslogtreecommitdiff
path: root/go/weed/filer.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2016-06-02 18:09:14 -0700
committerChris Lu <chris.lu@gmail.com>2016-06-02 18:09:14 -0700
commit5ce6bbf07672bf3f3c8d26cd2ce0e3e853a47c44 (patch)
tree2e4dd2ad0a618ab2b7cdebcdb9c503526c31e2e8 /go/weed/filer.go
parentcaeffa3998adc060fa66c4cd77af971ff2d26c57 (diff)
downloadseaweedfs-5ce6bbf07672bf3f3c8d26cd2ce0e3e853a47c44.tar.xz
seaweedfs-5ce6bbf07672bf3f3c8d26cd2ce0e3e853a47c44.zip
directory structure change to work with glide
glide has its own requirements. My previous workaround caused me some code checkin errors. Need to fix this.
Diffstat (limited to 'go/weed/filer.go')
-rw-r--r--go/weed/filer.go105
1 files changed, 0 insertions, 105 deletions
diff --git a/go/weed/filer.go b/go/weed/filer.go
deleted file mode 100644
index 68bc3e407..000000000
--- a/go/weed/filer.go
+++ /dev/null
@@ -1,105 +0,0 @@
-package main
-
-import (
- "net/http"
- "os"
- "strconv"
- "time"
-
- "github.com/chrislusf/seaweedfs/go/glog"
- "github.com/chrislusf/seaweedfs/go/util"
- "github.com/chrislusf/seaweedfs/go/weed/weed_server"
-)
-
-var (
- f FilerOptions
-)
-
-type FilerOptions struct {
- master *string
- ip *string
- port *int
- collection *string
- defaultReplicaPlacement *string
- dir *string
- redirectOnRead *bool
- disableDirListing *bool
- secretKey *string
- cassandra_server *string
- cassandra_keyspace *string
- redis_server *string
- redis_password *string
- redis_database *int
-}
-
-func init() {
- cmdFiler.Run = runFiler // break init cycle
- f.master = cmdFiler.Flag.String("master", "localhost:9333", "master server location")
- f.collection = cmdFiler.Flag.String("collection", "", "all data will be stored in this collection")
- f.ip = cmdFiler.Flag.String("ip", "", "filer server http listen ip address")
- f.port = cmdFiler.Flag.Int("port", 8888, "filer server http listen port")
- f.dir = cmdFiler.Flag.String("dir", os.TempDir(), "directory to store meta data")
- f.defaultReplicaPlacement = cmdFiler.Flag.String("defaultReplicaPlacement", "000", "default replication type if not specified")
- f.redirectOnRead = cmdFiler.Flag.Bool("redirectOnRead", false, "whether proxy or redirect to volume server during file GET request")
- f.disableDirListing = cmdFiler.Flag.Bool("disableDirListing", false, "turn off directory listing")
- f.cassandra_server = cmdFiler.Flag.String("cassandra.server", "", "host[:port] of the cassandra server")
- f.cassandra_keyspace = cmdFiler.Flag.String("cassandra.keyspace", "seaweed", "keyspace of the cassandra server")
- f.redis_server = cmdFiler.Flag.String("redis.server", "", "host:port of the redis server, e.g., 127.0.0.1:6379")
- f.redis_password = cmdFiler.Flag.String("redis.password", "", "password in clear text")
- f.redis_database = cmdFiler.Flag.Int("redis.database", 0, "the database on the redis server")
- f.secretKey = cmdFiler.Flag.String("secure.secret", "", "secret to encrypt Json Web Token(JWT)")
-
-}
-
-var cmdFiler = &Command{
- UsageLine: "filer -port=8888 -dir=/tmp -master=<ip:port>",
- Short: "start a file server that points to a master server",
- Long: `start a file server which accepts REST operation for any files.
-
- //create or overwrite the file, the directories /path/to will be automatically created
- POST /path/to/file
- //get the file content
- GET /path/to/file
- //create or overwrite the file, the filename in the multipart request will be used
- POST /path/to/
- //return a json format subdirectory and files listing
- GET /path/to/
-
- Current <fullpath~fileid> mapping metadata store is local embedded leveldb.
- It should be highly scalable to hundreds of millions of files on a modest machine.
-
- Future we will ensure it can avoid of being SPOF.
-
- `,
-}
-
-func runFiler(cmd *Command, args []string) bool {
-
- if err := util.TestFolderWritable(*f.dir); err != nil {
- glog.Fatalf("Check Meta Folder (-dir) Writable %s : %s", *f.dir, err)
- }
-
- r := http.NewServeMux()
- _, nfs_err := weed_server.NewFilerServer(r, *f.ip, *f.port, *f.master, *f.dir, *f.collection,
- *f.defaultReplicaPlacement, *f.redirectOnRead, *f.disableDirListing,
- *f.secretKey,
- *f.cassandra_server, *f.cassandra_keyspace,
- *f.redis_server, *f.redis_password, *f.redis_database,
- )
- if nfs_err != nil {
- glog.Fatalf("Filer startup error: %v", nfs_err)
- }
- glog.V(0).Infoln("Start Seaweed Filer", util.VERSION, "at port", strconv.Itoa(*f.port))
- filerListener, e := util.NewListener(
- ":"+strconv.Itoa(*f.port),
- time.Duration(10)*time.Second,
- )
- if e != nil {
- glog.Fatalf("Filer listener error: %v", e)
- }
- if e := http.Serve(filerListener, r); e != nil {
- glog.Fatalf("Filer Fail to serve: %v", e)
- }
-
- return true
-}