mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
filer.remote.gateway: add options to include or exclude new bucket names to mirror
This commit is contained in:
parent
b5f4910412
commit
94a01fcfcb
|
@ -22,6 +22,8 @@ type RemoteGatewayOptions struct {
|
||||||
timeAgo *time.Duration
|
timeAgo *time.Duration
|
||||||
createBucketAt *string
|
createBucketAt *string
|
||||||
createBucketRandomSuffix *bool
|
createBucketRandomSuffix *bool
|
||||||
|
include *string
|
||||||
|
exclude *string
|
||||||
|
|
||||||
mappings *remote_pb.RemoteStorageMapping
|
mappings *remote_pb.RemoteStorageMapping
|
||||||
remoteConfs map[string]*remote_pb.RemoteConf
|
remoteConfs map[string]*remote_pb.RemoteConf
|
||||||
|
@ -50,6 +52,8 @@ func init() {
|
||||||
remoteGatewayOptions.createBucketRandomSuffix = cmdFilerRemoteGateway.Flag.Bool("createBucketWithRandomSuffix", true, "add randomized suffix to bucket name to avoid conflicts")
|
remoteGatewayOptions.createBucketRandomSuffix = cmdFilerRemoteGateway.Flag.Bool("createBucketWithRandomSuffix", true, "add randomized suffix to bucket name to avoid conflicts")
|
||||||
remoteGatewayOptions.readChunkFromFiler = cmdFilerRemoteGateway.Flag.Bool("filerProxy", false, "read file chunks from filer instead of volume servers")
|
remoteGatewayOptions.readChunkFromFiler = cmdFilerRemoteGateway.Flag.Bool("filerProxy", false, "read file chunks from filer instead of volume servers")
|
||||||
remoteGatewayOptions.timeAgo = cmdFilerRemoteGateway.Flag.Duration("timeAgo", 0, "start time before now. \"300ms\", \"1.5h\" or \"2h45m\". Valid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\", \"h\"")
|
remoteGatewayOptions.timeAgo = cmdFilerRemoteGateway.Flag.Duration("timeAgo", 0, "start time before now. \"300ms\", \"1.5h\" or \"2h45m\". Valid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\", \"h\"")
|
||||||
|
remoteGatewayOptions.include = cmdFilerRemoteGateway.Flag.String("include", "", "pattens of new bucket names, e.g., s3*")
|
||||||
|
remoteGatewayOptions.exclude = cmdFilerRemoteGateway.Flag.String("exclude", "", "pattens of new bucket names, e.g., local*")
|
||||||
}
|
}
|
||||||
|
|
||||||
var cmdFilerRemoteGateway = &Command{
|
var cmdFilerRemoteGateway = &Command{
|
||||||
|
|
|
@ -13,6 +13,7 @@ import (
|
||||||
"github.com/golang/protobuf/proto"
|
"github.com/golang/protobuf/proto"
|
||||||
"math"
|
"math"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
@ -75,6 +76,16 @@ func (option *RemoteGatewayOptions) makeBucketedEventProcessor(filerSource *sour
|
||||||
}
|
}
|
||||||
|
|
||||||
bucketName := strings.ToLower(entry.Name)
|
bucketName := strings.ToLower(entry.Name)
|
||||||
|
if *option.include != "" {
|
||||||
|
if ok, _ := filepath.Match(*option.include, entry.Name); !ok {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if *option.exclude != "" {
|
||||||
|
if ok, _ := filepath.Match(*option.exclude, entry.Name); ok {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
if *option.createBucketRandomSuffix {
|
if *option.createBucketRandomSuffix {
|
||||||
// https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html
|
// https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html
|
||||||
if len(bucketName)+5 > 63 {
|
if len(bucketName)+5 > 63 {
|
||||||
|
|
Loading…
Reference in a new issue