S3 is just a protocol. Minio is one example of software which implements this protocol. You're programming against S3, using amazon SDK, but you change endpoint to another provider and it just works.
I guess it wouldn't work for all the intricacies, but for commonly used stuff it works.