Browse Source
Merge pull request #1553 from kmlebedev/multi_domainname
Multi domainname
pull/1560/head
Chris Lu
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with
11 additions and
7 deletions
-
weed/command/filer.go
-
weed/command/s3.go
-
weed/command/server.go
-
weed/s3api/s3api_server.go
|
|
@ -69,7 +69,7 @@ func init() { |
|
|
|
// start s3 on filer
|
|
|
|
filerStartS3 = cmdFiler.Flag.Bool("s3", false, "whether to start S3 gateway") |
|
|
|
filerS3Options.port = cmdFiler.Flag.Int("s3.port", 8333, "s3 server http listen port") |
|
|
|
filerS3Options.domainName = cmdFiler.Flag.String("s3.domainName", "", "suffix of the host name, {bucket}.{domainName}") |
|
|
|
filerS3Options.domainName = cmdFiler.Flag.String("s3.domainName", "", "suffix of the host name in comma separated list, {bucket}.{domainName}") |
|
|
|
filerS3Options.tlsPrivateKey = cmdFiler.Flag.String("s3.key.file", "", "path to the TLS private key file") |
|
|
|
filerS3Options.tlsCertificate = cmdFiler.Flag.String("s3.cert.file", "", "path to the TLS certificate file") |
|
|
|
filerS3Options.config = cmdFiler.Flag.String("s3.config", "", "path to the config file") |
|
|
|
|
|
@ -36,7 +36,7 @@ func init() { |
|
|
|
cmdS3.Run = runS3 // break init cycle
|
|
|
|
s3StandaloneOptions.filer = cmdS3.Flag.String("filer", "localhost:8888", "filer server address") |
|
|
|
s3StandaloneOptions.port = cmdS3.Flag.Int("port", 8333, "s3 server http listen port") |
|
|
|
s3StandaloneOptions.domainName = cmdS3.Flag.String("domainName", "", "suffix of the host name, {bucket}.{domainName}") |
|
|
|
s3StandaloneOptions.domainName = cmdS3.Flag.String("domainName", "", "suffix of the host name in comma separated list, {bucket}.{domainName}") |
|
|
|
s3StandaloneOptions.config = cmdS3.Flag.String("config", "", "path to the config file") |
|
|
|
s3StandaloneOptions.tlsPrivateKey = cmdS3.Flag.String("key.file", "", "path to the TLS private key file") |
|
|
|
s3StandaloneOptions.tlsCertificate = cmdS3.Flag.String("cert.file", "", "path to the TLS certificate file") |
|
|
|
|
|
@ -105,7 +105,7 @@ func init() { |
|
|
|
serverOptions.v.pprof = cmdServer.Flag.Bool("volume.pprof", false, "enable pprof http handlers. precludes --memprofile and --cpuprofile") |
|
|
|
|
|
|
|
s3Options.port = cmdServer.Flag.Int("s3.port", 8333, "s3 server http listen port") |
|
|
|
s3Options.domainName = cmdServer.Flag.String("s3.domainName", "", "suffix of the host name, {bucket}.{domainName}") |
|
|
|
s3Options.domainName = cmdServer.Flag.String("s3.domainName", "", "suffix of the host name in comma separated list, {bucket}.{domainName}") |
|
|
|
s3Options.tlsPrivateKey = cmdServer.Flag.String("s3.key.file", "", "path to the TLS private key file") |
|
|
|
s3Options.tlsCertificate = cmdServer.Flag.String("s3.cert.file", "", "path to the TLS certificate file") |
|
|
|
s3Options.config = cmdServer.Flag.String("s3.config", "", "path to the config file") |
|
|
|
|
|
@ -3,6 +3,7 @@ package s3api |
|
|
|
import ( |
|
|
|
"fmt" |
|
|
|
"net/http" |
|
|
|
"strings" |
|
|
|
|
|
|
|
"github.com/gorilla/mux" |
|
|
|
"google.golang.org/grpc" |
|
|
@ -39,10 +40,13 @@ func (s3a *S3ApiServer) registerRouter(router *mux.Router) { |
|
|
|
apiRouter := router.PathPrefix("/").Subrouter() |
|
|
|
var routers []*mux.Router |
|
|
|
if s3a.option.DomainName != "" { |
|
|
|
domainNames := strings.Split(s3a.option.DomainName, ",") |
|
|
|
for _, domainName := range domainNames { |
|
|
|
routers = append(routers, apiRouter.Host( |
|
|
|
fmt.Sprintf("%s.%s:%d", "{bucket:.+}", s3a.option.DomainName, s3a.option.Port)).Subrouter()) |
|
|
|
fmt.Sprintf("%s.%s:%d", "{bucket:.+}", domainName, s3a.option.Port)).Subrouter()) |
|
|
|
routers = append(routers, apiRouter.Host( |
|
|
|
fmt.Sprintf("%s.%s", "{bucket:.+}", s3a.option.DomainName)).Subrouter()) |
|
|
|
fmt.Sprintf("%s.%s", "{bucket:.+}", domainName)).Subrouter()) |
|
|
|
} |
|
|
|
} |
|
|
|
routers = append(routers, apiRouter.PathPrefix("/{bucket}").Subrouter()) |
|
|
|
|
|
|
|