var ( // ErrWrongCodeForByteRange is returned if the client sends a request // with a Range header but the server returns a 2xx or 3xx code other // than 206 Partial Content. ErrWrongCodeForByteRange = errors.New("expected HTTP 206 from byte range request") )
func NewTransport(base http.RoundTripper, modifiers ...RequestModifier) http.RoundTripper
NewTransport creates a new transport which will apply modifiers to the request on a RoundTrip call.
ReadSeekCloser combines io.ReadSeeker with io.Closer.
type ReadSeekCloser interface { io.ReadSeeker io.Closer }
func NewHTTPReadSeeker(client *http.Client, url string, errorHandler func(*http.Response) error) ReadSeekCloser
NewHTTPReadSeeker handles reading from an HTTP endpoint using a GET request. When seeking and starting a read from a non-zero offset the a "Range" header will be added which sets the offset. TODO(dmcgowan): Move this into a separate utility package
RequestModifier represents an object which will do an inplace modification of an HTTP request.
type RequestModifier interface { ModifyRequest(*http.Request) error }
func NewHeaderRequestModifier(header http.Header) RequestModifier
NewHeaderRequestModifier returns a new RequestModifier which will add the given headers to a request.