diff --git a/http.go b/http.go index 13f95e3..314d0ef 100644 --- a/http.go +++ b/http.go @@ -14,10 +14,6 @@ import ( const rangeReaderBufferSize = 1024 * 16 -var httpClient = http.Client{ - Transport: &http3.RoundTripper{}, -} - type RangeReadSeekCloser struct { uri *url.URL size int64 @@ -28,6 +24,7 @@ type RangeReadSeekCloser struct { bufferOffset int64 closed bool fileName string + httpClient http.Client } func NewRangeReadSeekCloser(uri string) (*RangeReadSeekCloser, error) { @@ -37,6 +34,9 @@ func NewRangeReadSeekCloser(uri string) (*RangeReadSeekCloser, error) { } r := &RangeReadSeekCloser{ uri: parsedUrl, + httpClient: http.Client{ + Transport: &http3.RoundTripper{}, + }, } if err = r.getInformation(); err != nil { @@ -62,7 +62,7 @@ func (r *RangeReadSeekCloser) retryConnect() error { expectedLength := r.size - startOffset headers.Set("Range", fmt.Sprintf("bytes=%d-", startOffset)) - response, err := httpClient.Do(&http.Request{ + response, err := r.httpClient.Do(&http.Request{ Method: "GET", URL: r.uri, Header: headers, @@ -212,7 +212,7 @@ func (r *RangeReadSeekCloser) GetFileName() string { } func (r *RangeReadSeekCloser) getInformation() error { - response, err := httpClient.Head(r.GetURI()) + response, err := r.httpClient.Head(r.GetURI()) if err != nil { return err }