Ruby S3 client with synchronous and asynchronous I/O adapters