add single-file upload and download

- work on #13 & #14