I tried something like:
Aws::Client::ClientConfiguration config;
config.endpointOverride = Aws::String("localhost:9000");
It does not work.
It seems that AWS-SDK-CPP by default uses virtual hosting:
https://bucket-name/s3.amazonaws.com
However, to access Minio, we need path style access:
https://localhost:9000/minio/bucket-name
In AWS-SDK-JAVA, there is:
AmazonS3ClientBuilder.withPathStyleAccessEnabled(true)
is there something similar in AWS-SDK-CPP?
The switch between path style and virtual hosting is in S3Client constructor:
S3Client(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration(), bool signPayloads = false, bool useVirtualAdressing = true);
turn it off, as in:
Aws::Client::ClientConfiguration config;
config.endpointOverride = Aws::String("172.31.30.127:9000");
config.scheme = Aws::Http::Scheme::HTTP;
auto client = Aws::MakeShared<S3Client>("sample_s3_client", config, false, false);