AWS :: S3 :: S3Client构造函数非常慢

问题描述

我正在尝试使用AWS C ++ SDK为S3生成签名URL,但是Aws::S3::S3Client构造函数似乎很慢。在下面的示例中:

#include <aws/core/Aws.h>
#include <aws/s3/S3Client.h>
 
int main() {
    Aws::SDKOptions options;
    Aws::InitAPI(options);
    printf("1\n");
    Aws::S3::S3Client client;
    printf("2\n");
    Aws::ShutdownAPI(options);
}

编译为:

g++ example.cc -laws-cpp-sdk-core -laws-cpp-sdk-s3

12之间存在很长的延迟(至少5秒)。是什么原因造成的?

该库是通过以下方式构建和安装的:

git clone https://github.com/aws/aws-sdk-cpp.git
cd aws-sdk-cpp
cmake . -DCMAKE_BUILD_TYPE=Release -D BUILD_ONLY="s3"
make
make install

解决方法

当不在AWS上运行时,设置:

AWS_EC2_METADATA_DISABLED=true

禁用导致延迟的元数据API。