added cache only access server
This commit is contained in:
parent
2a0801b015
commit
b5ae5504a7
6 changed files with 217 additions and 8 deletions
|
|
@ -27,6 +27,7 @@ var (
|
|||
metadata string
|
||||
listenHttp string
|
||||
listenWebdav string
|
||||
listenCache string
|
||||
quota int64
|
||||
|
||||
log logr.Logger
|
||||
|
|
@ -41,6 +42,7 @@ func main() {
|
|||
flag.StringVar(&metadata, "data", "", "path to metadata file")
|
||||
flag.StringVar(&listenHttp, "listen", "127.0.0.1:8080", "listen addr:port")
|
||||
flag.StringVar(&listenWebdav, "webdav", "", "listen addr:port for webdav")
|
||||
flag.StringVar(&listenCache, "cache", "", "listen addr:port for cache only")
|
||||
flag.Int64Var("a, "quota", 1, "max disk usage quota in GiB")
|
||||
flag.Parse()
|
||||
|
||||
|
|
@ -51,14 +53,23 @@ func main() {
|
|||
if err != nil {
|
||||
klog.Fatalf("init failed: %s", err)
|
||||
}
|
||||
s := &http.Server{Addr: listenHttp, Handler: srv.NewFileServer(filesystem, klogr.New().WithName("server"))}
|
||||
s := &http.Server{
|
||||
Addr: listenHttp,
|
||||
Handler: srv.NewFileServer(
|
||||
filesystem,
|
||||
klogr.New().WithName("server"),
|
||||
),
|
||||
}
|
||||
go func() {
|
||||
err := s.ListenAndServe()
|
||||
if err != nil && err != http.ErrServerClosed {
|
||||
klog.Fatalf("init failed: %s", err)
|
||||
}
|
||||
}()
|
||||
var dav *http.Server
|
||||
var (
|
||||
dav *http.Server
|
||||
cache *http.Server
|
||||
)
|
||||
if listenWebdav != "" {
|
||||
dav = &http.Server{
|
||||
Addr: listenWebdav,
|
||||
|
|
@ -74,6 +85,21 @@ func main() {
|
|||
}
|
||||
}()
|
||||
}
|
||||
if listenCache != "" {
|
||||
cache = &http.Server{
|
||||
Addr: listenCache,
|
||||
Handler: srv.NewCacheServer(
|
||||
filesystem,
|
||||
klogr.New().WithName("cache"),
|
||||
),
|
||||
}
|
||||
go func() {
|
||||
err := cache.ListenAndServe()
|
||||
if err != nil && err != http.ErrServerClosed {
|
||||
klog.Fatalf("init failed: %s", err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
sigs := make(chan os.Signal, 1)
|
||||
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
|
||||
<-sigs
|
||||
|
|
@ -86,6 +112,11 @@ func main() {
|
|||
dav.Shutdown(ctx)
|
||||
cancel()
|
||||
}
|
||||
if cache != nil {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
|
||||
cache.Shutdown(ctx)
|
||||
cancel()
|
||||
}
|
||||
filesystem.Close()
|
||||
log.Info("cachefs shutdown completed")
|
||||
os.Exit(0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue