For streams, actually use a stream

This avoids loading all of the data to be transmitted into memory