diff options
Diffstat (limited to 'weed/command/s3.go')
| -rw-r--r-- | weed/command/s3.go | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/weed/command/s3.go b/weed/command/s3.go index f955c4222..25b75e9da 100644 --- a/weed/command/s3.go +++ b/weed/command/s3.go @@ -7,30 +7,26 @@ import ( "fmt" "io/ioutil" "net" - "net/http" "os" "runtime" "strings" "time" - "github.com/seaweedfs/seaweedfs/weed/util/version" - - "github.com/seaweedfs/seaweedfs/weed/s3api/s3err" + "github.com/gorilla/mux" "google.golang.org/grpc/credentials/tls/certprovider" "google.golang.org/grpc/credentials/tls/certprovider/pemfile" "google.golang.org/grpc/reflection" + "github.com/seaweedfs/seaweedfs/weed/glog" "github.com/seaweedfs/seaweedfs/weed/pb" "github.com/seaweedfs/seaweedfs/weed/pb/filer_pb" "github.com/seaweedfs/seaweedfs/weed/pb/s3_pb" - "github.com/seaweedfs/seaweedfs/weed/security" - - "github.com/gorilla/mux" - - "github.com/seaweedfs/seaweedfs/weed/glog" "github.com/seaweedfs/seaweedfs/weed/s3api" + "github.com/seaweedfs/seaweedfs/weed/s3api/s3err" + "github.com/seaweedfs/seaweedfs/weed/security" stats_collect "github.com/seaweedfs/seaweedfs/weed/stats" "github.com/seaweedfs/seaweedfs/weed/util" + "github.com/seaweedfs/seaweedfs/weed/util/version" ) var ( @@ -251,8 +247,6 @@ func (s3opt *S3Options) startS3Server() bool { glog.Fatalf("S3 API Server startup error: %v", s3ApiServer_err) } - httpS := &http.Server{Handler: router} - if *s3opt.portGrpc == 0 { *s3opt.portGrpc = 10000 + *s3opt.port } @@ -274,7 +268,7 @@ func (s3opt *S3Options) startS3Server() bool { if err != nil { glog.Fatalf("Failed to listen on %s: %v", localSocket, err) } - httpS.Serve(s3SocketListener) + newHttpServer(router, nil).Serve(s3SocketListener) }() } @@ -331,12 +325,12 @@ func (s3opt *S3Options) startS3Server() bool { clientAuth = tls.RequireAndVerifyClientCert } - httpS.TLSConfig = &tls.Config{ + tlsConfig := &tls.Config{ GetCertificate: s3opt.GetCertificateWithUpdate, ClientAuth: clientAuth, ClientCAs: caCertPool, } - err = security.FixTlsConfig(util.GetViper(), httpS.TLSConfig) + err = security.FixTlsConfig(util.GetViper(), tlsConfig) if err != nil { glog.Fatalf("error with tls config: %v", err) } @@ -344,12 +338,12 @@ func (s3opt *S3Options) startS3Server() bool { glog.V(0).Infof("Start Seaweed S3 API Server %s at https port %d", version.Version(), *s3opt.port) if s3ApiLocalListener != nil { go func() { - if err = httpS.ServeTLS(s3ApiLocalListener, "", ""); err != nil { + if err = newHttpServer(router, tlsConfig).ServeTLS(s3ApiLocalListener, "", ""); err != nil { glog.Fatalf("S3 API Server Fail to serve: %v", err) } }() } - if err = httpS.ServeTLS(s3ApiListener, "", ""); err != nil { + if err = newHttpServer(router, tlsConfig).ServeTLS(s3ApiListener, "", ""); err != nil { glog.Fatalf("S3 API Server Fail to serve: %v", err) } } else { @@ -358,13 +352,13 @@ func (s3opt *S3Options) startS3Server() bool { *s3opt.bindIp, *s3opt.portHttps, time.Duration(*s3opt.idleTimeout)*time.Second) if s3ApiLocalListenerHttps != nil { go func() { - if err = httpS.ServeTLS(s3ApiLocalListenerHttps, "", ""); err != nil { + if err = newHttpServer(router, tlsConfig).ServeTLS(s3ApiLocalListenerHttps, "", ""); err != nil { glog.Fatalf("S3 API Server Fail to serve: %v", err) } }() } go func() { - if err = httpS.ServeTLS(s3ApiListenerHttps, "", ""); err != nil { + if err = newHttpServer(router, tlsConfig).ServeTLS(s3ApiListenerHttps, "", ""); err != nil { glog.Fatalf("S3 API Server Fail to serve: %v", err) } }() @@ -374,12 +368,12 @@ func (s3opt *S3Options) startS3Server() bool { glog.V(0).Infof("Start Seaweed S3 API Server %s at http port %d", version.Version(), *s3opt.port) if s3ApiLocalListener != nil { go func() { - if err = httpS.Serve(s3ApiLocalListener); err != nil { + if err = newHttpServer(router, nil).Serve(s3ApiLocalListener); err != nil { glog.Fatalf("S3 API Server Fail to serve: %v", err) } }() } - if err = httpS.Serve(s3ApiListener); err != nil { + if err = newHttpServer(router, nil).Serve(s3ApiListener); err != nil { glog.Fatalf("S3 API Server Fail to serve: %v", err) } } |
