首页 > 解决方案 > 在使用 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 << "'.";
    }
}

有人可以帮我解决上述问题。

提前致谢!

标签: c++amazon-web-services

解决方案


我犯了一个非常基本的错误,我没有调用 InitAPI 和 ShutDownAPI,这是 S3 客户端配置的先决条件。添加它们后它工作正常。


推荐阅读