Enable S3 client mocking
Problem
We're unable to write advanced tests for the S3 storage driver. For example, it's not possible to simulate specific errors, which would only be possible by mocking the underlying S3 client.
This leads to low test coverage and unexpected behaviour when handling errors in production.
Solution
This MR changes the underlying S3 storage driver client to be of type s3iface.S3API
(interface) instead of the concrete type *s3.S3
. Doing so enables us to mock the S3 client for testing purposes.
Example
See !34 (a4a1a131) (for demonstration purposes only).
Edited by João Pereira