base: File API

This will flood the channel for large files. We probably don't use large files yet. We should at least add a TODO to fix this later.