diff --git a/main.go b/main.go index d764c95..c3daf09 100644 --- a/main.go +++ b/main.go @@ -1,7 +1,7 @@ /* * @Author: BlackTeay * @Date: 2024-04-30 09:37:39 - * @LastEditTime: 2024-05-06 16:37:14 + * @LastEditTime: 2024-05-06 17:24:31 * @LastEditors: BlackTeay * @Description: * @FilePath: /hls_builder/main.go @@ -370,39 +370,30 @@ func upload(localPath string, keyPath string, onComplete func()) { us3cliPath := getUs3cliPath() bucket := "us3://jlntv-live/replay/" + keyPath - cmd := exec.Command(us3cliPath, "cp", localPath, bucket, "-r", "--parallel", "10", "--reduce") + cmd := exec.Command(us3cliPath, "cp", localPath, bucket, "-r", "--parallel", "20") - // 获取命令的标准输出和错误输出 stdout, err := cmd.StdoutPipe() if err != nil { log.Fatal("Error creating stdout pipe:", err) } - stderr, err := cmd.StderrPipe() - if err != nil { - log.Fatal("Error creating stderr pipe:", err) - } - // 开始执行命令 if err := cmd.Start(); err != nil { log.Fatalf("Failed to start command: %s", err) } - // 使用协程异步读取输出 go func() { - scanner := bufio.NewScanner(stdout) - for scanner.Scan() { - fmt.Println("STDOUT:", scanner.Text()) + buffer := make([]byte, 1024) // 创建一个足够大的buffer + for { + n, err := stdout.Read(buffer) + if n > 0 { + fmt.Print("STDOUT:", string(buffer[:n])) // 打印实时输出 + } + if err != nil { + break + } } }() - go func() { - scanner := bufio.NewScanner(stderr) - for scanner.Scan() { - fmt.Println("STDERR:", scanner.Text()) - } - }() - - // 等待命令执行完成 if err := cmd.Wait(); err != nil { log.Printf("Command finished with error: %v", err) }