GSoC'18 Project Proposal: S3 integration as secondary storage

ownCloud offers the user to connect an s3 bucket as file storage individually - we call this secondary storage.

While we have an existing implementation we need to adopt the code for various reasons:
- use aws sdk is outdated
- not decoupled from core repository
- lack of automated tests

What needs to be done?
We have the possibility to easily integrate various file systems using the flysystem libraries - https://flysystem.thephpleague.com/adapter/aws-s3-v3/

During GSoC 2017 one student migrated the dropbox integration. Basically the same needs to be done with S3 - see https://github.com/owncloud/files_external_dropbox

In addition we expect setting up continuous integration via our drone system and testing the code base with at least one s3 service - like minio, ceph or scality.