我尝试过类似的事情:
Aws::Client::ClientConfiguration config;
config.endpointOverride = Aws::String("localhost:9000");
它不起作用。
AWS-SDK-CPP似乎默认使用虚拟主机:
https://bucket-name/s3.amazonaws.com
但是,要访问Minio,我们需要路径样式访问:
https://localhost:9000/minio/bucket-name
在AWS-SDK-JAVA中,有:
AmazonS3ClientBuilder.withPathStyleAccessEnabled(true)
AWS-SDK-CPP中有类似内容吗?
答案 0 :(得分:2)
路径样式和虚拟主机之间的切换是在S3Client构造函数中:
S3Client(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration(), bool signPayloads = false, bool useVirtualAdressing = true);
将其关闭,如:
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);