diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-09-05 11:55:52 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-09-05 11:55:52 -0700 |
| commit | 60573fd3e29d83a296dd58fed960cb3d13c20dda (patch) | |
| tree | 674da2a5e9a4df85fae17db4b971eb70b5e356f7 /weed/shell/command_remote_mount_buckets.go | |
| parent | 2348e8d8da2d452c31f6f7a6a9a5eb5a30e19345 (diff) | |
| download | seaweedfs-60573fd3e29d83a296dd58fed960cb3d13c20dda.tar.xz seaweedfs-60573fd3e29d83a296dd58fed960cb3d13c20dda.zip | |
option to map remote bucket to trimmed bucket name
Diffstat (limited to 'weed/shell/command_remote_mount_buckets.go')
| -rw-r--r-- | weed/shell/command_remote_mount_buckets.go | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/weed/shell/command_remote_mount_buckets.go b/weed/shell/command_remote_mount_buckets.go index f95143dfd..08a0903f7 100644 --- a/weed/shell/command_remote_mount_buckets.go +++ b/weed/shell/command_remote_mount_buckets.go @@ -9,6 +9,7 @@ import ( "github.com/chrislusf/seaweedfs/weed/util" "io" "path/filepath" + "regexp" ) func init() { @@ -43,6 +44,7 @@ func (c *commandRemoteMountBuckets) Do(args []string, commandEnv *CommandEnv, wr remote := remoteMountBucketsCommand.String("remote", "", "a already configured storage name") bucketPattern := remoteMountBucketsCommand.String("bucketPattern", "", "match existing bucket name with wildcard characters '*' and '?'") + trimBucketSuffix := remoteMountBucketsCommand.Bool("trimBucketSuffix", false, "remote suffix auto generated by 'weed filer.remote.sync'") apply := remoteMountBucketsCommand.Bool("apply", false, "apply the mount for listed buckets") if err = remoteMountBucketsCommand.Parse(args); err != nil { @@ -76,6 +78,8 @@ func (c *commandRemoteMountBuckets) Do(args []string, commandEnv *CommandEnv, wr return fmt.Errorf("read filer buckets path: %v", err) } + hasSuffixPattern, _ := regexp.Compile(".+-[0-9][0-9][0-9][0-9]") + for _, bucket := range buckets { if *bucketPattern != "" { if matched, _ := filepath.Match(*bucketPattern, bucket.Name); !matched { @@ -84,9 +88,16 @@ func (c *commandRemoteMountBuckets) Do(args []string, commandEnv *CommandEnv, wr } fmt.Fprintf(writer, "bucket %s\n", bucket.Name) + localBucketName := bucket.Name + if *trimBucketSuffix { + if hasSuffixPattern.MatchString(localBucketName) { + localBucketName = localBucketName[:len(localBucketName)-5] + fmt.Fprintf(writer, " mount bucket %s as %s\n", bucket.Name, localBucketName) + } + } if *apply { - dir := util.FullPath(fillerBucketsPath).Child(bucket.Name) + dir := util.FullPath(fillerBucketsPath).Child(localBucketName) remoteStorageLocation := &remote_pb.RemoteStorageLocation{ Name: *remote, Bucket: bucket.Name, |
