S3 storage driver for next gen modifications

This still needs some more minor debugging.
`regionName` can actually be `nil` now, so `fmt.Sprint(regionName)` won't work in that case, as it will print to "<nil>". As region must be provided, the type assertion is fine.