in oss/lib/probe.go [485:534]
func (pc *ProbeCommand) RunCommand() error {
var err error
pc.pbOption.opUpload, _ = GetBool(OptionUpload, pc.command.options)
pc.pbOption.opDownload, _ = GetBool(OptionDownload, pc.command.options)
pc.pbOption.fromUrl, _ = GetString(OptionUrl, pc.command.options)
pc.pbOption.bucketName, _ = GetString(OptionBucketName, pc.command.options)
pc.pbOption.objectName, _ = GetString(OptionObject, pc.command.options)
pc.pbOption.netAddr, _ = GetString(OptionAddr, pc.command.options)
pc.pbOption.upMode, _ = GetString(OptionUpMode, pc.command.options)
pc.pbOption.probeItem, _ = GetString(OptionProbeItem, pc.command.options)
if pc.pbOption.probeItem != "" {
var err error
if pc.pbOption.probeItem == "cycle-symlink" {
err = pc.CheckCycleSymlinkWithDeepTravel()
if err == nil {
fmt.Println("\n", "success")
}
} else if pc.pbOption.probeItem == "upload-speed" || pc.pbOption.probeItem == "download-speed" {
err = pc.DetectBandWidth()
} else if pc.pbOption.probeItem == "download-time" {
err = pc.DetectDownloadTime()
} else {
err = fmt.Errorf("not support %s", pc.pbOption.probeItem)
}
return err
}
pc.pbOption.logFile, pc.pbOption.logName, err = logFileMake()
if err != nil {
return fmt.Errorf("probe logFileMake error,%s", err.Error())
}
defer pc.pbOption.logFile.Close()
pc.pbOption.logFile.WriteString("************************* system information *************************\n")
pc.pbOption.logFile.WriteString(fmt.Sprintf("operating system:%s_%s\n", runtime.GOOS, runtime.GOARCH))
pc.pbOption.logFile.WriteString(fmt.Sprintf("operating time:%s\n", time.Now().Format("2006-01-02 15:04:05")))
if pc.pbOption.opUpload && pc.pbOption.opDownload {
err = fmt.Errorf("error,upload and download are both true")
} else if !pc.pbOption.opUpload && !pc.pbOption.opDownload {
err = fmt.Errorf("error,upload and download are both false")
} else if !pc.pbOption.opUpload && pc.pbOption.opDownload {
err = pc.probeDownload()
} else {
err = pc.probeUpload()
}
return err
}