@@ -3,13 +3,13 @@ package stream
33import (
44 "context"
55 "fmt"
6- "github.com/alist-org/alist/v3/pkg/utils"
76 "io"
87 "net/http"
98
109 "github.com/alist-org/alist/v3/internal/model"
1110 "github.com/alist-org/alist/v3/internal/net"
1211 "github.com/alist-org/alist/v3/pkg/http_range"
12+ "github.com/alist-org/alist/v3/pkg/utils"
1313 log "github.com/sirupsen/logrus"
1414)
1515
@@ -19,7 +19,11 @@ func GetRangeReadCloserFromLink(size int64, link *model.Link) (model.RangeReadCl
1919 }
2020 rangeReaderFunc := func (ctx context.Context , r http_range.Range ) (io.ReadCloser , error ) {
2121 if link .Concurrency != 0 || link .PartSize != 0 {
22- header := net .ProcessHeader (http.Header {}, link .Header )
22+ requestHeader := ctx .Value ("request_header" )
23+ if requestHeader == nil {
24+ requestHeader = & http.Header {}
25+ }
26+ header := net .ProcessHeader (* (requestHeader .(* http.Header )), link .Header )
2327 down := net .NewDownloader (func (d * net.Downloader ) {
2428 d .Concurrency = link .Concurrency
2529 d .PartSize = link .PartSize
@@ -60,7 +64,11 @@ func GetRangeReadCloserFromLink(size int64, link *model.Link) (model.RangeReadCl
6064}
6165
6266func RequestRangedHttp (ctx context.Context , link * model.Link , offset , length int64 ) (* http.Response , error ) {
63- header := net .ProcessHeader (http.Header {}, link .Header )
67+ requestHeader := ctx .Value ("request_header" )
68+ if requestHeader == nil {
69+ requestHeader = & http.Header {}
70+ }
71+ header := net .ProcessHeader (* (requestHeader .(* http.Header )), link .Header )
6472 header = http_range .ApplyRangeToHttpHeader (http_range.Range {Start : offset , Length : length }, header )
6573
6674 return net .RequestHttp (ctx , "GET" , header , link .URL )
0 commit comments