// newClientFromAlias gives a new client interface for matching // alias entry in the mc config file. If no matching host config entry // is found, fs client is returned. func newClientFromAlias(alias string, urlStr string) (client.Client, *probe.Error) { hostCfg := mustGetHostConfig(alias) if hostCfg == nil { // No matching host config. So we treat it like a // filesystem. fsClient, err := fs.New(urlStr) if err != nil { return nil, err.Trace(alias, urlStr) } return fsClient, nil } // We have a valid alias and hostConfig. We populate the // credentials from the match found in the config file. s3Config := new(client.Config) s3Config.AccessKey = hostCfg.AccessKey s3Config.SecretKey = hostCfg.SecretKey s3Config.Signature = hostCfg.API s3Config.AppName = "mc" s3Config.AppVersion = mcVersion s3Config.AppComments = []string{os.Args[0], runtime.GOOS, runtime.GOARCH} s3Config.HostURL = urlStr s3Config.Debug = globalDebug s3Client, err := s3.New(s3Config) if err != nil { return nil, err.Trace(alias, urlStr) } return s3Client, nil }