storage: download integrity check

- [x] integrity tests
- [x] merge #299

Picking up from #299, where we're implementing integrity checks for uploads.
Sorry on my phone grabbing lunch. Will follow up once I get back to a computer