c++ - 在使用 AWS SDK for C++ 创建 S3 客户端时获取“调试断言”
问题描述
我是 AWS 的初学者,我需要将文件写入/上传到 S3 存储桶。
下面是我写的代码片段,但我得到了调试错误!abort() has been called
在第 4 行 Aws::S3::S3Client s3_client(config);
(这只是一个代码片段,不是完整的代码):-
Aws::Client::ClientConfiguration config;
const Aws::String region = "us-east-1";
config.region = region;
Aws::S3::S3Client s3_client(config);
Aws::S3::Model::PutObjectRequest request;
request.SetBucket("parquetbucketforlossengine");
request.SetKey(filename);
const std::shared_ptr<Aws::IOStream> input_data =
Aws::MakeShared<Aws::StringStream>("");
*input_data << file_output_stream;
request.SetBody(input_data);
Aws::S3::Model::PutObjectOutcome outcome = s3_client.PutObject(request);
if (!outcome.IsSuccess()) {
std::cout << "Error: PutObjectBuffer: " <<
outcome.GetError().GetMessage() << std::endl;
}
else
{
std::cout << "Success: Object '" << filename << "'.";
}
}
有人可以帮我解决上述问题。
提前致谢!
解决方案
我犯了一个非常基本的错误,我没有调用 InitAPI 和 ShutDownAPI,这是 S3 客户端配置的先决条件。添加它们后它工作正常。
推荐阅读
- c++ - 如何检索文件的共享模式?
- sql - 如何正确写出复杂的逻辑条件?
- linux - 如何根据错误关键字从日志文件中提取行?
- python - 如何并排遍历列表中的字符串元素?
- python - Sendgrid 使用 API 密钥进行身份验证
- javascript - office-js中的Excel函数解析
- artifactory - Artifactory 从 6.14.1 升级到 7.10.2:migrate.sh 找不到旧的 Artifactory 版本
- argo-workflows - 如何为 Argo Workflow DAG 中的每个步骤传递不同的参数值
- flexbox - Flexbox、uk-flex-left 和 uk-flex-right
- docusignapi - 签名后 HTML 文档缩小