S3 storage driver for next gen modifications

This still needs some more minor debugging.
This should only be deleted if the copy succeeds. To make this clearer, I'd rather you only did returns at the end of the function, or you did them in the ends of the ifs (which is at the end of the function)