@@ -2,7 +2,6 @@ package proxy
22
33import (
44 "bufio"
5- "compress/gzip"
65 "fmt"
76 "ghproxy/config"
87 "io"
@@ -66,7 +65,7 @@ func modifyURL(url string, host string, cfg *config.Config) string {
6665}
6766
6867// processLinks 处理链接,返回包含处理后数据的 io.Reader
69- func processLinks (input io.ReadCloser , compress string , host string , cfg * config.Config , c * touka.Context ) (readerOut io.Reader , written int64 , err error ) {
68+ func processLinks (input io.ReadCloser , host string , cfg * config.Config , c * touka.Context ) (readerOut io.Reader , written int64 , err error ) {
7069 pipeReader , pipeWriter := io .Pipe () // 创建 io.Pipe
7170 readerOut = pipeReader
7271
@@ -97,43 +96,14 @@ func processLinks(input io.ReadCloser, compress string, host string, cfg *config
9796
9897 var bufReader * bufio.Reader
9998
100- if compress == "gzip" {
101- // 解压gzip
102- gzipReader , gzipErr := gzip .NewReader (input )
103- if gzipErr != nil {
104- err = fmt .Errorf ("gzip解压错误: %v" , gzipErr )
105- return // Goroutine 中使用 return 返回错误
106- }
107- defer gzipReader .Close ()
108- bufReader = bufio .NewReader (gzipReader )
109- } else {
110- bufReader = bufio .NewReader (input )
111- }
99+ bufReader = bufio .NewReader (input )
112100
113101 var bufWriter * bufio.Writer
114- var gzipWriter * gzip.Writer
115-
116- // 根据是否gzip确定 writer 的创建
117- if compress == "gzip" {
118- gzipWriter = gzip .NewWriter (pipeWriter ) // 使用 pipeWriter
119- bufWriter = bufio .NewWriterSize (gzipWriter , 4096 ) //设置缓冲区大小
120- } else {
121- bufWriter = bufio .NewWriterSize (pipeWriter , 4096 ) // 使用 pipeWriter
122- }
102+
103+ bufWriter = bufio .NewWriterSize (pipeWriter , 4096 ) // 使用 pipeWriter
123104
124105 //确保writer关闭
125106 defer func () {
126- var closeErr error // 局部变量,用于保存defer中可能发生的错误
127-
128- if gzipWriter != nil {
129- if closeErr = gzipWriter .Close (); closeErr != nil {
130- c .Errorf ("gzipWriter close failed %v" , closeErr )
131- // 如果已经存在错误,则保留。否则,记录此错误。
132- if err == nil {
133- err = closeErr
134- }
135- }
136- }
137107 if flushErr := bufWriter .Flush (); flushErr != nil {
138108 c .Errorf ("writer flush failed %v" , flushErr )
139109 // 如果已经存在错误,则保留。否则,记录此错误。
0 commit comments