问题描述
我正在尝试使用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
1
和2
之间存在很长的延迟(至少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。