diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-01-02 23:43:01 -0800 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-01-02 23:43:01 -0800 |
| commit | 4250a3a67510dda9fe9d6e38d4ea617c97c4c214 (patch) | |
| tree | 18fbc7e67dc3f3ff89d1a89b3954644b2f53ff5d | |
| parent | 2c3c2c27d7a900838734fac5c7cb3f4cc7340ea1 (diff) | |
| download | seaweedfs-4250a3a67510dda9fe9d6e38d4ea617c97c4c214.tar.xz seaweedfs-4250a3a67510dda9fe9d6e38d4ea617c97c4c214.zip | |
upload: add read default collection from master
fix https://github.com/chrislusf/seaweedfs/issues/1724#issuecomment-753576071
| -rw-r--r-- | weed/command/upload.go | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/weed/command/upload.go b/weed/command/upload.go index 45b15535b..7115da587 100644 --- a/weed/command/upload.go +++ b/weed/command/upload.go @@ -1,8 +1,12 @@ package command import ( + "context" "encoding/json" "fmt" + "github.com/chrislusf/seaweedfs/weed/pb" + "github.com/chrislusf/seaweedfs/weed/pb/master_pb" + "google.golang.org/grpc" "os" "path/filepath" @@ -65,6 +69,15 @@ func runUpload(cmd *Command, args []string) bool { util.LoadConfiguration("security", false) grpcDialOption := security.LoadClientTLS(util.GetViper(), "grpc.client") + defaultCollection, err := readMasterConfiguration(grpcDialOption, *upload.master) + if err != nil { + fmt.Printf("upload: %v", err) + return false + } + if *upload.replication == "" { + *upload.replication = defaultCollection + } + if len(args) == 0 { if *upload.dir == "" { return false @@ -104,3 +117,15 @@ func runUpload(cmd *Command, args []string) bool { } return true } + +func readMasterConfiguration(grpcDialOption grpc.DialOption, masterAddress string) (replication string, err error) { + err = pb.WithMasterClient(masterAddress, grpcDialOption, func(client master_pb.SeaweedClient) error { + resp, err := client.GetMasterConfiguration(context.Background(), &master_pb.GetMasterConfigurationRequest{}) + if err != nil { + return fmt.Errorf("get master %s configuration: %v", masterAddress, err) + } + replication = resp.DefaultReplication + return nil + }) + return +} |
