Add initial file streaming implementation, with progress reporting