in pkg/stream/s3/s3_reader.go [112:136]
func (r *s3Reader) read(p []byte) (n int, err error) {
if r.resp == nil {
getObjectErr := r.makeNewS3Request()
if getObjectErr != nil {
return 0, getObjectErr
}
}
bytesRead, readErr := r.resp.Body.Read(p)
if readErr != nil {
// Error throwing from S3, close the current s3 socket
defer r.closeS3Socket()
if readErr == io.EOF {
r.offset += int64(bytesRead)
return bytesRead, io.EOF
} else {
return bytesRead, &ReadError{readErr}
}
} else {
r.offset += int64(bytesRead)
return bytesRead, nil
}
}