Super rough draft of all three file storage providers. Still need to add lots of error handling and validation.