Create new client per-request
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
606b43e1c5
commit
78377bc860
18
http.go
18
http.go
|
@ -24,7 +24,6 @@ type RangeReadSeekCloser struct {
|
||||||
bufferOffset int64
|
bufferOffset int64
|
||||||
closed bool
|
closed bool
|
||||||
fileName string
|
fileName string
|
||||||
httpClient http.Client
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewRangeReadSeekCloser(uri string) (*RangeReadSeekCloser, error) {
|
func NewRangeReadSeekCloser(uri string) (*RangeReadSeekCloser, error) {
|
||||||
|
@ -34,9 +33,6 @@ func NewRangeReadSeekCloser(uri string) (*RangeReadSeekCloser, error) {
|
||||||
}
|
}
|
||||||
r := &RangeReadSeekCloser{
|
r := &RangeReadSeekCloser{
|
||||||
uri: parsedUrl,
|
uri: parsedUrl,
|
||||||
httpClient: http.Client{
|
|
||||||
Transport: &http3.RoundTripper{},
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = r.getInformation(); err != nil {
|
if err = r.getInformation(); err != nil {
|
||||||
|
@ -50,6 +46,16 @@ func (r *RangeReadSeekCloser) GetURI() string {
|
||||||
return r.uri.String()
|
return r.uri.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *RangeReadSeekCloser) getClient() *http.Client {
|
||||||
|
return &http.Client{
|
||||||
|
CheckRedirect: func(req *http.Request, via []*http.Request) error {
|
||||||
|
req.Header.Del("referer")
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
Transport: &http3.RoundTripper{},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (r *RangeReadSeekCloser) retryConnect() error {
|
func (r *RangeReadSeekCloser) retryConnect() error {
|
||||||
r.bodyLock.Lock()
|
r.bodyLock.Lock()
|
||||||
defer r.bodyLock.Unlock()
|
defer r.bodyLock.Unlock()
|
||||||
|
@ -62,7 +68,7 @@ func (r *RangeReadSeekCloser) retryConnect() error {
|
||||||
|
|
||||||
expectedLength := r.size - startOffset
|
expectedLength := r.size - startOffset
|
||||||
headers.Set("Range", fmt.Sprintf("bytes=%d-", startOffset))
|
headers.Set("Range", fmt.Sprintf("bytes=%d-", startOffset))
|
||||||
response, err := r.httpClient.Do(&http.Request{
|
response, err := r.getClient().Do(&http.Request{
|
||||||
Method: "GET",
|
Method: "GET",
|
||||||
URL: r.uri,
|
URL: r.uri,
|
||||||
Header: headers,
|
Header: headers,
|
||||||
|
@ -212,7 +218,7 @@ func (r *RangeReadSeekCloser) GetFileName() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *RangeReadSeekCloser) getInformation() error {
|
func (r *RangeReadSeekCloser) getInformation() error {
|
||||||
response, err := r.httpClient.Head(r.GetURI())
|
response, err := r.getClient().Head(r.GetURI())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue