func()

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

	}
}