如何在AWS-SDK-CPP中覆盖端点以连接到localhost:9000上的minio服务器

时间:2017-11-03 22:34:06

标签: minio aws-sdk-cpp

我尝试过类似的事情:

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中有类似内容吗?

1 个答案:

答案 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);